Unix,BSD,Solaris和Mac OS X的故事

Posted 软件那些事儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unix,BSD,Solaris和Mac OS X的故事相关的知识,希望对你有一定的参考价值。

按照这前两天的想法,我想在《知识星球》里写远比我电台里要详细的多的软件发展史。因为很多的内容不适合在电台里讲,比如一些技术。

虽然这里只有20个人,但是我还是希望大家能够有所收获。而不仅仅是了解一些非常浅的知识,比如,如何在Linux配置Java的开发环境。

我想到的素材我会随时记录在这里,目前来说可能有一些错误,等到正式成文的时候,我会尽量让文章没有明显的错误。

1

Linux的故事当然也是非常精彩,但是由于Linux有一个软硬不吃,水火不容的GPL协议,所以Linux不走寻常路,在一些关键技术上,不用Unix,BSD和Solaris的代码,当然,重新山寨是没问题的,比如当其它几个操作系统都在支持ZFS这个文件系统的时候,Linux自己根据ZFS山寨了一个叫Btrfs的文件系统。

这个Btrfs是Suse(SUSE Linux Enterprise Server)的默认文件系统,其它的大部分Linux发行版会用ext4,前两年有个测试,Btrfs用了5秒就挂了,ext4时间长点,用了两个来小时(正式发布在知识星球的时候,我会补上那篇测试文章的链接)。Linux的文件系统没有那么强大。(正式发布在知识星球,我会补上Linus对ext4发表的几次不友好言论。

Linux是个伟大的系统,当然有伟大的程序员来开发,Linux从最初的FFS,到ext2, ext3, ext4(其实ext起源于Minix)再到后来的Btrfs, XFS, BCacheFS,已经可以自成一个故事体系了。如果有机会,我再专门去写Linux。

在这个文章里,写的是除了Linux的文件系统,因为除了Linux和微软,其它几个操作系统之间经常互通有无,Linux至少有半数软件是基于BSD的,但是由于Linux的GPL协议,对BSD几乎是只取不予。反而这几个Unix,BSD,Solaris和Mac OS之间的比较有趣。

2

文件系统的英文名叫File System,所以,最初Unix的时候,文件系统就叫FS,这个很直接。

这个FS文件系统并没有持续太久,Unix进入了让Berkeley大学推动的阶段,也就是所谓的Berkeley Software Distribution(BSD),在这里,一个牛人(成文会详细介绍)开发了Fast File System,这个也被称为FFS,事实上的Unix File System,所以FFS也被称为UFS。

BSD当时的影响力超大,不是Linux可比的。BSD如日中天的年代是198X年,Linux还没出生,Linus还在上初中。

当时苹果公司的乔布斯被卖百事可乐的CEO一脚踢出门,就去建 卖的还不错,这个操作系统就是NeXTSTEP,是今天我们用的ios,Mac OS的亲爹,这个亲爹不是从0开始写的,而是用的BSD的代码。所以,NeXTSTEP用的自然也就是UFS文件系统。

(正文中会再详细介绍HFS这个老Mac系统的文件系统,以及如何演化到UFS的。)

以上是介绍BSD Unix和Mac系统的历史,有什么联系。

3

再来说Solaris,Solaris是Sun公司的Unix操作系统,这个操作系统也是基于BSD做的,原因是Sun公司的创始人是Berkeley大学的学生,自己也参与了BSD的开发。刚开始,这个操作系统叫SunOS,到后来才叫Solaris,这个不用问了,文件系统也是UFS。

以上是BSD Unix和Solaris系统的历史,这两个系统有什么联系。

4

BSD取得了巨大的成功以后,AT&T,USL,BSDI,加州大学在版权上打起了官司,这一打就是两年时间,从1992年打到1994年,这个官司对BSD产生了极坏的影响。

BSD作为一个Unix,可以运行在多个平台上,其中有一个平台是给个人电脑使用的,名字叫386BSD,因为这次官司,让BSD的核心开发者走了不少。

FreeBSD面对的市场和微软,Linux是一样的,都是个人用户,可惜BSD当时忙着打官司,无心在个人电脑上发展。有传言说当时Linus不知道有FreeBSD这个东西,如果知道,就不会写Linux了。

其实这次官司和许多版权官司一样,就是看别人赚到了很多钱,自己心里不平衡了,也想分一点,可惜对方给的不够,最后就是我得不到的,你也别想得到。这次版权总共涉及3到6个文件,这3到6个文件根本就是无足轻重,BSD的源文件有2万多个,但是律师认为这是极大的伤害,而且谁也别想再动BSD,谁给BSD写代码,就一起起诉。

大家都没有钱赚了。

就在这种情况下,FreeBSD挺难的,到了官司结束,个人用户要么被微软搞了,要么用Linux了。官司过后,一直引领BSD开发的CSRG小组宣布解散,在领导了BSD Unix开发20年后。

CSRG小组发布的最后一个BSD版本是4.4BSD-Lite, Release 2。FreeBSD 2.0就是以此为基础发布的。

以上是BSD Unix和FreeBSD的关系。

6

在理清了这几个系统之间的关系以后,就会知道为什么这几个系统在出现新技术的时候,会经常互相采用。

比如苹果公司会经常给FreeBSD提交代码,Sun公司推出的ZFS,DTrace会被FreeBSD和Mac很快的采用。

7

我想在在我的知识星球里,以BSD Unix为中心,写一些文章,主要是技术与历史相结合。

比如说文件系统的变迁(主要是Sun的ZFS,BSD社区对ZFS的态度,Linux对ZFS的态度,Mac对ZFS态度的变化)我想写10来期。以每期1000-2000字来算。

开源社区的编译器之间的明争暗斗我想写10来期。(Apple和BSD社区对GCC大力投资,Objective-C对Gcc的依赖,但是GCC对Apple一直是不冷不热,最终,Apple私下里大量投资Chris Lattner的LLVM,目标就是替换掉GCC。FreeBSD社区迅速响应,采纳Apple的LLVM,并且FreeBSD在未来的目标是,发行版中完全不采用GNU的代码)

BSD和AT&T版权的故事也很有趣,我想这个也写5-6期。

我还想写一下内核之争,可能也要10开期,可能大家都熟悉Linus和Minix作者关于微内核的争论,在Unix中,也有一个很著名的微内核,以4.3BSD为基础的Mach,还有开源界搞了20年没搞成的GNU/Hurd,以及开源的大BOSS曾经有个女朋友的大名对开源界的贡献。

因为Mac是BSD重要的分支之一,在写BSD的时候,我想写一下处理器,因为世界上只有Mac一家公司在很短的时间内完成了从一个CPU跳到了别一个CPU,这里,我也大概也能写10来期。

8

以上就是我的知识星球的一个打算,起码前10万字的计划已经有了。因为人不多,问我问题的人更少,我也不太想回答一些google就能找到的问题。

我希望有兴趣的人能订阅,还希望订阅过的人不要随便就把我的文章复制粘贴发到网上,这样的话,我又要重复走每期电台赚个20-30块钱的老路了。

长按识别就可以加入我的知识星球。


以上是关于Unix,BSD,Solaris和Mac OS X的故事的主要内容,如果未能解决你的问题,请参考以下文章

修复 Linux / Unix / OS X / BSD 系统控制台上的显示乱码 | Linux 中国

c_cpp 这在Windows,Linux,* BSD和Mac OS X上提供了endian.h的endian转换函数。你仍然需要使用-std = gnu99代替

Mac OS X终端的常用操作命令(UNIX指令)

MAC OS随笔

Mac OS X 的系统目录结构

PythonWindows, Linux/UNIX, Mac OS X 下安裝 Python