不知道我下面说的内容是否是完整和严谨的。有些文章看的年代已经久远了,具体的时间和情况可能有出入!
linux与unix的关系其实是个历史问题。
1、unix的变化。
大约是1970年代,Ken Thompson和Dennis Ritchie在PDP-7机器上发明了UNIX操作系统。原则上这是属于贝尔实验室的操作系统。在unix发展的早期,他的源代码是公开的,至少在学校和研究机构是如此。这一时期UNIX系统的专有性质并不非常凸出(我是这样认为的)。这样情况维持到了1980年代。在UNIX逐渐发展的过程中,各种因素影响之下。它出现了一些变种,而且彼此差异越来越大。这之后的UNIX系统分裂为多个由不同公司发展和掌握的专有操作系统。这个阶段开始的标志,好象是AT&T公司宣布对unix源代码享有专有权开始的。1984年,AT&T在反托拉斯法下被分割,UNIX首次成为商品产品,被“控制”起来。比如现在所说的BSD就是UNIX伯科利学校的一个变种;IBM公司的UNIX被称为AIX;SGI的叫做IRIX;太阳微(sun)推出了它自己的unix版本solaris。这些版本是不兼容的,并且是专有的操作系统。现在也一样。
2、GNU的产生。
1980年,一个坚决反对实验室技术商业化的人,面对unix专有,提出了自己的宏伟计划,并由此创建了FSF(Free Software Foundation,FSF自由软件基金会)和GPL(GNU General Public License)协议。我想不用我说,大家也该知道这个人是谁!他就是Richard M. Stallman(同时也是Emacs的发明人)。1982年他开始着手开发一个完全自由的UNIX的完整复制品,由C写成,免费提供,源代码自由散布……。根据他的思路,他并没有一开始发展一个unix核心,而是将主要精力放在建立核心周围的支撑环境。(也许在这些人看来,一个kernel真不算什么了不起的东西:)。佩服!多年以后,我才逐渐认识到,他的这种想法非常有道理!)GNU计划下也有一个核心,叫HURD,“Hurd 是一组运行在 Mach 微内核上的服务器,用来实现 Unix 或其他核心(如 Linux)实现了的文件系统、网络协议、及文件访问控制等其他功能。目前,Hurd 运行在 IA32 系统上。”──摘自
http://www.gnu.org/software/hurd/hurd.cn.html
(目前,Hurd已经快到可以发行的程度了。)
上面说的事情,在Steve Levy撰写的《黑客》一书中有生动、详细的记载。
3、MINIX、Internet与Linux
minix也许很多人不知道。这是ANDREW S.TANENBAUM(安德鲁.坦尼鲍姆)开发的一个与UNIX兼容的操作系统。或者说类UNIX系统,但它不是UNIX因为,它与UNIX系统在代码上没有继承关系!这点与Linux是一样的。Minix系统是一个以教学和研究为目的的微内核操作系统。提到TANENBAUM和MINIX有两个原因,
一个原因是,他是《OPERATINGS SYSTEMS──Design and Implementation》一书的作者之一,我想这本书是任何一个学习操作系统的人都看过的。(曾记得当年我的操作系统课程老师,将这本书的复印本卖给我们上课,并且丝毫不提此书的原著作者!后来偶然机会得知这就是《操作系统:设计与实现》时!我的第一反映就是想杀人!)
另一个原因,MINIX推出之后,很多人热衷于此,并且希望该系统能够进一步完善,其中也包括Linus Torvalds。然而,TANENBAUM出于教学使用的考虑,以及,TANENBAUM固执的认为微内核才是最好的发展方向(也许,理论上是没错的!他与Linus Torvalds关于微内核与整体内核的争论comp.os.minix上几成经典)。他始终不愿意扩展MINIX!这某种程度上导致了Linux的产生。
时间进入1990年代,我认为有种东西的出现(完善)远比Linux的出现对世界的影响更大!毫无疑问,这就是Internet的出现。它对世界的影响是社会性而非技术性的。技术上的个人英雄时代从此结束;而一种新的软件开发形式发展起来!Eric Steven Raymond形象的称之为“大教堂与集市”(他的同名著作)。可以肯定没有Internet的发展,不可能会有今天开源软件之发展。对于pc用户来说,也许我们不得不继续忍受M$的盘剥。(换成UNIX也不见得好多少,不过是换个“财主”而已)
种种因素的作用下,1991年,一位赫尔辛基大学的学生,Linus Torvalds为386机器开发出一个全新的内核。他使用了GPL协议说明这个内核,并且在其上运行FSF提供的软件(GNU软件)。这个内核被发布到internet上,吸引了大量的黑客参与进来,并且迅速的成长起来,第一个版本的推出只用了很短的时间。该内核填补了Hurd发行之前的空白,这一地位一直持续到现在。所以准确的说linux只是内核,整个操作系统根合适被称为GNU/Linux。(详细的可见于
《Linux and the GNU Project》by Richard Stallman)
…………待续肚子叫了。