本文发表在 rolia.net 枫下论坛AT&T于1983年发布了System V(简称SVR1,意为System V的第一版,在Bell Labs原版的基础上吸收了一些来自其它版本的技术),此后便一直沿用这一名称。直到1993年AT&T将UNIX卖给Novell之后(连同拥有UNIX产权的子公司USL,Unix System Laboratories),Novell仍使用了一段时间,最后一个System V版本是Novell于1993年12月推出的SVR4.2MP(MP是“多处理器”的意思)。而最先的那个版本(以Version x命名)Bell Labs仍继续发展了一段时间,直至1990年推出的Version 10。但SV系列推出后,这一系列影响就小了,大多数UNIX的变种都是源自SV系列和BSD系列,而SVR4本身就吸收了BSD系列的一些东西(主要是TCP/IP协议栈)。
UNIX技术虽然广受欢迎,但这一商标本身似乎并未创造很大的价值,AT&T大概是因为受条约限制,据说在它身上只赚了几亿美元,而Novell也没能很好地利用它,Novell后来将自己的Netware与SVR4相结合,推出了Unixware,随后就将UNIX的商标权卖给了X/Open Company。到了1995年,干脆把Unixware也卖给了SCO(Santa Cruz Operation,这家公司好象不太厚道,前两年因为Novell转向发展Linux,SCO以不太站得住脚的原因起诉Novell侵权,同时还告了IBM,因为诉讼对Linux非常不利,激起公愤,我记得当时《电脑报》以很少见的激烈言辞在头版予以报道)。
X/Open Company在1996年与OSF (Open Softare Foundation)合并,成立了The Open Group。这个非赢利组织到目前为止拥有着UNIX的商标权,实际上,经过这么一番复杂的变迁,UNIX这一名称似乎已经谈不上有多大的商业价值了,更多的是一种标准和象征。The Open Group负责发布和维护Single Unix Specification(UNIX规范),后来ISO(国际标准化组织)发布的UNIX标准主要就是照这个来的。关于UNIX还有一个重要的标准,就是由IEEE(电气和电子工程师协会)发布的POSIX(Portable Operating Systems Interfaces for Computer Environment,Linux最初就是照着这个葫芦画瓢来实现与UNIX的兼容的:)
有关AT&T的叙述告一段落,再说两句Thompson和Ritchie,与这两位牛人告别:)。就象顶尖的物理学家只对大问题感兴趣一样(一般是在证明一种理论后就转向研究其它,那些细枝末节的问题就交给那些实验物理学家了),在发明UNIX之后,他们并没有在这上面花费太多功夫,除了做一些本职工作的研究之外(例如IP电话),他们还继续对操作系统进行探索。由于UNIX的核心设计完成的如此之早,Thompson他们虽然天纵英才,却也没能料到计算机的发展如此日新月异,UNIX最初是作为一个基于单机的分时系统来设计的,这显然不符合当今潮流,虽然仗着它高效、稳固以及灵活的可扩充性设计,在今天的网络时代仍挑着大梁,但在新兴应用层出不穷的情形下不时表现出的核心技术的滞后让Thompson他们颇为不爽,于是他们决心搞一个新玩意。
在80年代后期,Thompson和Ritchie开始开发Plan9(1995年推出)。这个看上去与UNIX颇为相似、仍旧以C语言编写的操作系统是全新的,它面向网络和分布式计算,在一定程度上,它提出的概念有点类似上世纪末Oracel和SUN他们提出的NC(NetWork Computer),或者叫“瘦客户端”,核心理念就是把网络里的运算能力集中起来,客户机则用不着太快。在Plan9系统的网络里,有一个“CPU服务器” ,它来处理大多数的运算请求,然后将结果返回到各客户端。这一构想很早就有人提出,所以Thompson他们也好,Oracel他们也好都不算是发明创造,在今天,这种应用也很普遍(比如Google,海量信息的搜索和查询请求的处理就是在服务器端完成的,大多数网络开发技术都是基于服务器端),但在系统级的架构上实现这一理念,Plan9首开先河。而且令人兴奋的是,Plan9顺应了开源软件的大潮,大家可以去Bell Labs或者Vita Nuova(经营Plan9和Inferno的公司)的网站上下载到它附有源码的版本。
后来,Thompson和Ritchie还主持编写了一个叫做Inferno的系统(1996年推出),这个系统基于一种叫做Limbo的语言(这个主要是Sean Dorward设计的,Thompson曾特意声明,大家别搞错了,呵呵:),在概念上与JAVA比较类似,它有一个通过Limbo语言接口的交互层,即可以做为一个单独的操作系统安装,也可以作为一个应用程序在别的操作系统中运行——就象JAVA虚拟机(SUN也曾做过纯JAVA的操作系统,不过好象效率低下,没能推广开),Inferno比JAVA推出的略晚一些,但考虑到研发的时间因素,分不清谁先谁后,不过Thompson说Limbo要比JAVA清爽,当然这只是一面之辞:)。
除了计算机之外,Thompson和Ritchie的爱好就不大相同了。Ritchie喜欢古典音乐,但并不发烧,通常只在收音机里听听,Thompson喜欢流行音乐,而且非常发烧,他收集了几万首上过排行榜的流行歌曲——以一种Bell Labs发明的叫做PAC的压缩格式,音质远超MP3,而且他透露大多是“非法”取得的(相信不少同志有过类似行为:)。Ritchie喜欢旅行,规规矩矩的那种,比较出格的也就是开开大卡车,Thompson就比较猛,他喜欢开飞机,而且水平不错,在前苏联时代,曾经开着飞机过去跟他们的米格-29比试了一番。现在Thompson己经退休,当上了飞机教练,Ritchie则还在Bell Labs工作,当上了领导,负责系统软件研发部门,主要工作不再是写代码,改成了开支票(按咱们时下的流行理论,这也算是程序员修成了正果,呵呵)。Ritchie曾经与Brian W.Kernighan合写了《The C Programming Language》,是计算机科学的经典名著(单就发行量似乎不如谭浩强那本,但影响不可同日而语),世界上最著名的程序——“Hello,World.”就是在这本书里首次亮相:)。Ritchie低调而自负,自称没有偶像,唯独对Thompson赞赏有加,他拒不承认对UNIX的贡献与Thompson一样多,并声称Thompson的编程水平自己望尘莫及。而Thompson似乎是个乐天派,他自称做过的几乎所有事情都是出于个人爱好——我真希望自己也能说出同样的话来。
1983年,Thompson和Ritchie荣获图灵奖,首开以软件工程师而不是计算机科学家的身份获奖的先例,并促使图灵奖开设了一个新奖项——软件系统奖;199年,他们俩又获得了“全美技术勋章”,作为程序员,他们获得的荣誉可算是登峰造极了。但Thompson对当今计算机业的看法却不太令人鼓舞,他说计算机业已经进入了中世纪,不再那么令人兴奋,他建议自己的儿子选择生物工程,而不是计算机,顺便说一句,Thompson曾经细读过Linux的源码,对这个新一代的传奇评价不高,进而对整个计算机业的技术发展似乎都比较失望。比起二、三十年前,现如今的IT业的确商业味更浓,而革命性的创新鲜见,如果真如Thompson所言,如今是处于计算机业的“中世纪”的话,真希望能早点等到“文艺复兴”的到来:)。
转过头再来说BSD。
当时搞UNIX研发的并非只有Berkeley一家,只因Berkeley出了Bill Joy这么个大牛人,一下子把别人都压下去了,到第三版(就是可以完美支持VAX机的那一版)推出后,风头之健,更是盖过了Bell Labs,成为UNIX技术发展的中心,因为这样的优势地位,不久之后,一个巨大的机遇找上门来。
1979年,DARPA(Defens Advanced Research Projects Agency,美国国防部高级研究计划局)开始着手一项计划,全面更新他们的ARPAnet(一个用于连接他们散落在美国各地研究中心的计算机的网络 ,Internet的前身)。早期运行ARPAnet的都是些PDP-10,现在已是风烛残年,该退休了,DARPA准备换上新型的VAX机来接班,加上前两年开发的TCP/IP协议(Transimission Control Protocol/Internet protocol)也得借这次机会登台亮相,这将是一次脱胎换骨的大换血。DARPA首先想到的是找DEC,毕竟VAX就是他们的产品,但他们需要对操作系统进行大幅度的修改,想到DEC对于自家VMS的保守态度,上门搞不好要碰个大钉子,自己动手吧,又没下嘴的地方——正犹豫间,BSD的出现让他们眼前一亮——完全支持VAX,可获得源码,可定制,可移植,简直就是个度身定做的系统!
于是他们找上了Berkeley。Berkeley当然是有见识的,这么有意义的活计上哪去找,共襄盛举那是求之不得啊,于是在1980年两家就签订了一个合同,由DARPA资助Berkeley发展UNIX,以满足DARPA的需要。Berkeley为此专门成立了一个小组叫做CSRG(Computer System Research Group),由Bob Fabry教授负责(就是将UNIX引入Berkeley的那位),Fabry当然很想Joy参加进来,但当时Joy刚通过Ph.D.的考试,为其学业着想,Fabry也不好意思去找他,但没多久Joy就主动找上门来了(一点不奇怪,他不参加倒真奇了怪了:)。
且说DARPA的一个主要要求就是要将TCP/IP协议集成到UNIX中,他们此前就找了一家叫BBN的公司写好了协议栈,CSRG就安排Joy来做集成工作。没想到的是,没过几天,Joy就完成了——这没什么稀奇,稀奇的是,他根本没用BBN写的协议栈,他居然自己重写了一个,原因竟是,他嫌BBN的那个写得太烂!要知道BBN的那玩意可是一项巨额合同的成果,BBN和DARPA这下觉得太没面子了,肯定有内情,就开会研究,请Joy参加。且说Joy穿着件T恤,蓬头垢面的就进了会议室,满坐西装革履,看着这小子不觉有点发呆,回过神来就问他,你是怎么写出来的(估计还存着念头,以为他以前做过相关研究什么的)?没想到回答简直让他们喷血,Joy说,这个嘛,很简单,你读协议,然后编码,就行了。:)
最早集成Joy所写的TCP/IP模块的BSD版本是4.1a,跟3BSD之间隔了两个版本,4.0和4.1。这两个版本的进步不算大,4.0版主要是加进去一个Lisp系统(Lisp是一种资格极老的语言,由MIT的John McCarthy教授于1958年发明,仅比史上最早的高级语言——1957年由IBM开发的Fortran——晚了1年而已,这种设计理念奇异的语言非常与众不同,它对程序与数据不加区别,对其缺乏了解的人看到它浑然一体、遍布密密麻麻括号的源程序肯定会一头雾水,但它有着强大的表达能力,尤其适合符号和文字处理,是AI(Artificial Intelligence,人工智能)领域的首选语言——目前可能是它的一个变种Scheme用得更多些,著名的AutoCAD自带的脚本语言AutoLisp就是基于它,还有著名的Emacs也是Lisp写的,还附带一个完整Lisp版本——Emacs Lisp),以及一个增强的邮件处理系统,这个版本的生存期只有几个月,因为它存在一些严重隐患,大家抱怨颇多,于是CSRG很快就推出了4.1版,这个版本主要是对4.0版做了些修修补补,此外大一点的改动就是增加了自动配置代码功能。
本来按Berkeley的命名规则,4.0版过后就应该是5.0版,但这时AT&T有意见了,因为他们自己推出的UNIX就叫System V,两个5容易混淆。BSD本来就是从AT&T那儿发展来的,人家一直都很宽容,况且到当时为止,AT&T的代码都还没替换干净,吃人家的嘴短,当然不好争什么,于是Berkeley决定,4字头就不往上升了,以后的版本只升小数点以后的数字(有点致敬的意思,好比芝加哥公牛队在乔丹退役后就不再使用23号球衣:)。
而4.1a这个版本相当于现在软件的α版(内部测试版),Joy不仅为它集成了TCP/IP,还增加了多网络协议的支持能力,多个网络协议可以同时使用,这在以后成为操作系统的设计标准。因为4.0版的失败,所以CSRG决定发布新版本要慎重一点,所以先自己试用,但与现在的情形一样,这个版本还是流传了出去,并勾起了大家的兴致,不少FANS开始对4.2版充满期待。
但4.2版的诞生颇为艰难,自1982年4月4.1a版发布开始,又过了1年零4个月,中间经历了4.1b和4.1c两个非正式版本,经历了Bob Fabry(还记得他吗?CSRG的BOSS,UNIX由他引入Berkeley,他的离去很大程度上是因为不堪重负——这种高强度的开发工作是很折磨人的)和Bill Joy(他于1982年以唯一一名技术人员的身份与Scott McNealy等4名Stanford的学生一起创办了SUN公司,如你所知,这是当今最著名的生产UNIX机器的公司,但他关于BSD的工作仍持续了好几年)的离去,才于1983年8月正式发布。
这一版本非常成功(尽管问题也不少,主要是因为一堆新增的功能还没有很好的优化),发行量超过以往版本的总和,并且打败了AT&T的System V,成为广大UNIX厂商制作移植版本的首选,著名的如SunOS 4就是基于它,AT&T在SV的后续开发中也集成了4.2版的许多精华(抄袭是最好的赞美,谁说的来着:)。事实上,这一版本影响如此深远,尤其是其网络模块,此后几乎所有重要的操作系统都从中借鉴,更有一些是直接拿过来用。
除了骄人的网络功能,4.2版还有许多其它方面的重大进步,如:新的、更强大的文件系统以及磁盘配额机制,新的信号机制,以及独立出来的输入/输出系统,还有全新的文档——这些都是大动作,而且就这还是迫于发布压力进行了妥协,不然还准备对交互通讯机制和虚拟内存管理模块开刀:)。
所有人都表示赞赏——除了BBN(就是那个写了最初的TCP/IP协议栈并被Joy给否了的公司)。他们对Joy的那一箭之仇一直耿耿于怀,于是不停地向DARPA抱怨,说自己的理念是如何先进,设计又是如何优秀,BSD如果采用了我们的模块一定会跑得更欢云云~~~~,DARPA也不禁动了心,就责成CSRG重新评估BBN的代码,CSRG的高手一看,也确实有可取之处啊,但要说把自己的代码给换掉,也未见得可行,毕竟自己的代码此时已是经过考验的,于是就提出一个折衷方案,把两套代码都包含进去,由用户选择。但这下DARPA又不同意了,这可是网络模块,搞两个政府,自立山头,不是明摆着添乱吗?坚决不行!公说公有理,婆说婆有理,这也不是办法,于是干脆,DARPA请了个第三方的专家——Ballistics实验室Mike Muus来做评估。Muus忙乎了一个月之后,结果出来了,Joy的代码通过了所有测试,而BBN的呢,在高负荷的时候时不时会死给你看:)。于是DARPA拍板,新版本继续使用Joy的代码,BBN这下郁闷死了~~~:)。更多精彩文章及讨论,请光临枫下论坛 rolia.net
UNIX技术虽然广受欢迎,但这一商标本身似乎并未创造很大的价值,AT&T大概是因为受条约限制,据说在它身上只赚了几亿美元,而Novell也没能很好地利用它,Novell后来将自己的Netware与SVR4相结合,推出了Unixware,随后就将UNIX的商标权卖给了X/Open Company。到了1995年,干脆把Unixware也卖给了SCO(Santa Cruz Operation,这家公司好象不太厚道,前两年因为Novell转向发展Linux,SCO以不太站得住脚的原因起诉Novell侵权,同时还告了IBM,因为诉讼对Linux非常不利,激起公愤,我记得当时《电脑报》以很少见的激烈言辞在头版予以报道)。
X/Open Company在1996年与OSF (Open Softare Foundation)合并,成立了The Open Group。这个非赢利组织到目前为止拥有着UNIX的商标权,实际上,经过这么一番复杂的变迁,UNIX这一名称似乎已经谈不上有多大的商业价值了,更多的是一种标准和象征。The Open Group负责发布和维护Single Unix Specification(UNIX规范),后来ISO(国际标准化组织)发布的UNIX标准主要就是照这个来的。关于UNIX还有一个重要的标准,就是由IEEE(电气和电子工程师协会)发布的POSIX(Portable Operating Systems Interfaces for Computer Environment,Linux最初就是照着这个葫芦画瓢来实现与UNIX的兼容的:)
有关AT&T的叙述告一段落,再说两句Thompson和Ritchie,与这两位牛人告别:)。就象顶尖的物理学家只对大问题感兴趣一样(一般是在证明一种理论后就转向研究其它,那些细枝末节的问题就交给那些实验物理学家了),在发明UNIX之后,他们并没有在这上面花费太多功夫,除了做一些本职工作的研究之外(例如IP电话),他们还继续对操作系统进行探索。由于UNIX的核心设计完成的如此之早,Thompson他们虽然天纵英才,却也没能料到计算机的发展如此日新月异,UNIX最初是作为一个基于单机的分时系统来设计的,这显然不符合当今潮流,虽然仗着它高效、稳固以及灵活的可扩充性设计,在今天的网络时代仍挑着大梁,但在新兴应用层出不穷的情形下不时表现出的核心技术的滞后让Thompson他们颇为不爽,于是他们决心搞一个新玩意。
在80年代后期,Thompson和Ritchie开始开发Plan9(1995年推出)。这个看上去与UNIX颇为相似、仍旧以C语言编写的操作系统是全新的,它面向网络和分布式计算,在一定程度上,它提出的概念有点类似上世纪末Oracel和SUN他们提出的NC(NetWork Computer),或者叫“瘦客户端”,核心理念就是把网络里的运算能力集中起来,客户机则用不着太快。在Plan9系统的网络里,有一个“CPU服务器” ,它来处理大多数的运算请求,然后将结果返回到各客户端。这一构想很早就有人提出,所以Thompson他们也好,Oracel他们也好都不算是发明创造,在今天,这种应用也很普遍(比如Google,海量信息的搜索和查询请求的处理就是在服务器端完成的,大多数网络开发技术都是基于服务器端),但在系统级的架构上实现这一理念,Plan9首开先河。而且令人兴奋的是,Plan9顺应了开源软件的大潮,大家可以去Bell Labs或者Vita Nuova(经营Plan9和Inferno的公司)的网站上下载到它附有源码的版本。
后来,Thompson和Ritchie还主持编写了一个叫做Inferno的系统(1996年推出),这个系统基于一种叫做Limbo的语言(这个主要是Sean Dorward设计的,Thompson曾特意声明,大家别搞错了,呵呵:),在概念上与JAVA比较类似,它有一个通过Limbo语言接口的交互层,即可以做为一个单独的操作系统安装,也可以作为一个应用程序在别的操作系统中运行——就象JAVA虚拟机(SUN也曾做过纯JAVA的操作系统,不过好象效率低下,没能推广开),Inferno比JAVA推出的略晚一些,但考虑到研发的时间因素,分不清谁先谁后,不过Thompson说Limbo要比JAVA清爽,当然这只是一面之辞:)。
除了计算机之外,Thompson和Ritchie的爱好就不大相同了。Ritchie喜欢古典音乐,但并不发烧,通常只在收音机里听听,Thompson喜欢流行音乐,而且非常发烧,他收集了几万首上过排行榜的流行歌曲——以一种Bell Labs发明的叫做PAC的压缩格式,音质远超MP3,而且他透露大多是“非法”取得的(相信不少同志有过类似行为:)。Ritchie喜欢旅行,规规矩矩的那种,比较出格的也就是开开大卡车,Thompson就比较猛,他喜欢开飞机,而且水平不错,在前苏联时代,曾经开着飞机过去跟他们的米格-29比试了一番。现在Thompson己经退休,当上了飞机教练,Ritchie则还在Bell Labs工作,当上了领导,负责系统软件研发部门,主要工作不再是写代码,改成了开支票(按咱们时下的流行理论,这也算是程序员修成了正果,呵呵)。Ritchie曾经与Brian W.Kernighan合写了《The C Programming Language》,是计算机科学的经典名著(单就发行量似乎不如谭浩强那本,但影响不可同日而语),世界上最著名的程序——“Hello,World.”就是在这本书里首次亮相:)。Ritchie低调而自负,自称没有偶像,唯独对Thompson赞赏有加,他拒不承认对UNIX的贡献与Thompson一样多,并声称Thompson的编程水平自己望尘莫及。而Thompson似乎是个乐天派,他自称做过的几乎所有事情都是出于个人爱好——我真希望自己也能说出同样的话来。
1983年,Thompson和Ritchie荣获图灵奖,首开以软件工程师而不是计算机科学家的身份获奖的先例,并促使图灵奖开设了一个新奖项——软件系统奖;199年,他们俩又获得了“全美技术勋章”,作为程序员,他们获得的荣誉可算是登峰造极了。但Thompson对当今计算机业的看法却不太令人鼓舞,他说计算机业已经进入了中世纪,不再那么令人兴奋,他建议自己的儿子选择生物工程,而不是计算机,顺便说一句,Thompson曾经细读过Linux的源码,对这个新一代的传奇评价不高,进而对整个计算机业的技术发展似乎都比较失望。比起二、三十年前,现如今的IT业的确商业味更浓,而革命性的创新鲜见,如果真如Thompson所言,如今是处于计算机业的“中世纪”的话,真希望能早点等到“文艺复兴”的到来:)。
转过头再来说BSD。
当时搞UNIX研发的并非只有Berkeley一家,只因Berkeley出了Bill Joy这么个大牛人,一下子把别人都压下去了,到第三版(就是可以完美支持VAX机的那一版)推出后,风头之健,更是盖过了Bell Labs,成为UNIX技术发展的中心,因为这样的优势地位,不久之后,一个巨大的机遇找上门来。
1979年,DARPA(Defens Advanced Research Projects Agency,美国国防部高级研究计划局)开始着手一项计划,全面更新他们的ARPAnet(一个用于连接他们散落在美国各地研究中心的计算机的网络 ,Internet的前身)。早期运行ARPAnet的都是些PDP-10,现在已是风烛残年,该退休了,DARPA准备换上新型的VAX机来接班,加上前两年开发的TCP/IP协议(Transimission Control Protocol/Internet protocol)也得借这次机会登台亮相,这将是一次脱胎换骨的大换血。DARPA首先想到的是找DEC,毕竟VAX就是他们的产品,但他们需要对操作系统进行大幅度的修改,想到DEC对于自家VMS的保守态度,上门搞不好要碰个大钉子,自己动手吧,又没下嘴的地方——正犹豫间,BSD的出现让他们眼前一亮——完全支持VAX,可获得源码,可定制,可移植,简直就是个度身定做的系统!
于是他们找上了Berkeley。Berkeley当然是有见识的,这么有意义的活计上哪去找,共襄盛举那是求之不得啊,于是在1980年两家就签订了一个合同,由DARPA资助Berkeley发展UNIX,以满足DARPA的需要。Berkeley为此专门成立了一个小组叫做CSRG(Computer System Research Group),由Bob Fabry教授负责(就是将UNIX引入Berkeley的那位),Fabry当然很想Joy参加进来,但当时Joy刚通过Ph.D.的考试,为其学业着想,Fabry也不好意思去找他,但没多久Joy就主动找上门来了(一点不奇怪,他不参加倒真奇了怪了:)。
且说DARPA的一个主要要求就是要将TCP/IP协议集成到UNIX中,他们此前就找了一家叫BBN的公司写好了协议栈,CSRG就安排Joy来做集成工作。没想到的是,没过几天,Joy就完成了——这没什么稀奇,稀奇的是,他根本没用BBN写的协议栈,他居然自己重写了一个,原因竟是,他嫌BBN的那个写得太烂!要知道BBN的那玩意可是一项巨额合同的成果,BBN和DARPA这下觉得太没面子了,肯定有内情,就开会研究,请Joy参加。且说Joy穿着件T恤,蓬头垢面的就进了会议室,满坐西装革履,看着这小子不觉有点发呆,回过神来就问他,你是怎么写出来的(估计还存着念头,以为他以前做过相关研究什么的)?没想到回答简直让他们喷血,Joy说,这个嘛,很简单,你读协议,然后编码,就行了。:)
最早集成Joy所写的TCP/IP模块的BSD版本是4.1a,跟3BSD之间隔了两个版本,4.0和4.1。这两个版本的进步不算大,4.0版主要是加进去一个Lisp系统(Lisp是一种资格极老的语言,由MIT的John McCarthy教授于1958年发明,仅比史上最早的高级语言——1957年由IBM开发的Fortran——晚了1年而已,这种设计理念奇异的语言非常与众不同,它对程序与数据不加区别,对其缺乏了解的人看到它浑然一体、遍布密密麻麻括号的源程序肯定会一头雾水,但它有着强大的表达能力,尤其适合符号和文字处理,是AI(Artificial Intelligence,人工智能)领域的首选语言——目前可能是它的一个变种Scheme用得更多些,著名的AutoCAD自带的脚本语言AutoLisp就是基于它,还有著名的Emacs也是Lisp写的,还附带一个完整Lisp版本——Emacs Lisp),以及一个增强的邮件处理系统,这个版本的生存期只有几个月,因为它存在一些严重隐患,大家抱怨颇多,于是CSRG很快就推出了4.1版,这个版本主要是对4.0版做了些修修补补,此外大一点的改动就是增加了自动配置代码功能。
本来按Berkeley的命名规则,4.0版过后就应该是5.0版,但这时AT&T有意见了,因为他们自己推出的UNIX就叫System V,两个5容易混淆。BSD本来就是从AT&T那儿发展来的,人家一直都很宽容,况且到当时为止,AT&T的代码都还没替换干净,吃人家的嘴短,当然不好争什么,于是Berkeley决定,4字头就不往上升了,以后的版本只升小数点以后的数字(有点致敬的意思,好比芝加哥公牛队在乔丹退役后就不再使用23号球衣:)。
而4.1a这个版本相当于现在软件的α版(内部测试版),Joy不仅为它集成了TCP/IP,还增加了多网络协议的支持能力,多个网络协议可以同时使用,这在以后成为操作系统的设计标准。因为4.0版的失败,所以CSRG决定发布新版本要慎重一点,所以先自己试用,但与现在的情形一样,这个版本还是流传了出去,并勾起了大家的兴致,不少FANS开始对4.2版充满期待。
但4.2版的诞生颇为艰难,自1982年4月4.1a版发布开始,又过了1年零4个月,中间经历了4.1b和4.1c两个非正式版本,经历了Bob Fabry(还记得他吗?CSRG的BOSS,UNIX由他引入Berkeley,他的离去很大程度上是因为不堪重负——这种高强度的开发工作是很折磨人的)和Bill Joy(他于1982年以唯一一名技术人员的身份与Scott McNealy等4名Stanford的学生一起创办了SUN公司,如你所知,这是当今最著名的生产UNIX机器的公司,但他关于BSD的工作仍持续了好几年)的离去,才于1983年8月正式发布。
这一版本非常成功(尽管问题也不少,主要是因为一堆新增的功能还没有很好的优化),发行量超过以往版本的总和,并且打败了AT&T的System V,成为广大UNIX厂商制作移植版本的首选,著名的如SunOS 4就是基于它,AT&T在SV的后续开发中也集成了4.2版的许多精华(抄袭是最好的赞美,谁说的来着:)。事实上,这一版本影响如此深远,尤其是其网络模块,此后几乎所有重要的操作系统都从中借鉴,更有一些是直接拿过来用。
除了骄人的网络功能,4.2版还有许多其它方面的重大进步,如:新的、更强大的文件系统以及磁盘配额机制,新的信号机制,以及独立出来的输入/输出系统,还有全新的文档——这些都是大动作,而且就这还是迫于发布压力进行了妥协,不然还准备对交互通讯机制和虚拟内存管理模块开刀:)。
所有人都表示赞赏——除了BBN(就是那个写了最初的TCP/IP协议栈并被Joy给否了的公司)。他们对Joy的那一箭之仇一直耿耿于怀,于是不停地向DARPA抱怨,说自己的理念是如何先进,设计又是如何优秀,BSD如果采用了我们的模块一定会跑得更欢云云~~~~,DARPA也不禁动了心,就责成CSRG重新评估BBN的代码,CSRG的高手一看,也确实有可取之处啊,但要说把自己的代码给换掉,也未见得可行,毕竟自己的代码此时已是经过考验的,于是就提出一个折衷方案,把两套代码都包含进去,由用户选择。但这下DARPA又不同意了,这可是网络模块,搞两个政府,自立山头,不是明摆着添乱吗?坚决不行!公说公有理,婆说婆有理,这也不是办法,于是干脆,DARPA请了个第三方的专家——Ballistics实验室Mike Muus来做评估。Muus忙乎了一个月之后,结果出来了,Joy的代码通过了所有测试,而BBN的呢,在高负荷的时候时不时会死给你看:)。于是DARPA拍板,新版本继续使用Joy的代码,BBN这下郁闷死了~~~:)。更多精彩文章及讨论,请光临枫下论坛 rolia.net