• Welcome to ComeFromChina Community (CFC中文网)! We are the largest Chinese Canadian community forum in Ottawa. Please to participate in discussions, post topics, view images, and access full community features. Join us today! 欢迎来到CFC中文网。请登录以参与讨论、发布主题并查看图片。

精华 [饭后消食贴][转帖]闲话操作系统

早期的BSD并不全是Berkeley搞出来的,里面含有大量属于AT&T的代码,以及一些其它大学贡献的代码。这时的AT&T由于不能用UNIX赚钱,所以态度很不明朗,对于教育及科研机构的政策很宽松,只收取象征性的费用,提供源码,并且没什么使用限制(很高明的推广策略,事实证明成效斐然,堪与微软对盗版暧昧的纵容相比),对于企业用户的收费就很高(一份带源码的拷贝要2万美元,装多台机器的话还得另加,比起BSD来这还算便宜,一份源码版的BSD要4万),而且限制多多。但也不能说它把UNIX商品化, AT&T没有自己的UNIX开发计划,而且既不作广告推销,也不提供技术支持、售后服务,对产品品质也不作任何保证(如果出现什么BUG,你也得自己认了~~),至于没有试用期,一手交钱一手交货那就不用提了,凼到这个份上,也实在不象做生意的样子:)。

  但Bell Labs内部还是成立了几个小组(类似学校里的兴趣小组,当然也可能怀有商业用心:),承担了一部分UNIX的技术支持工作(非官方),并且进行进一步地开发。Thompson和Ritchie他们的小组就叫“Research”,他们主要搞研发(并不限于UNIX),对技术支持没多大兴趣,挑大梁的是另外两个,一个叫PWB(Programmer's Workbench,他们对UNIX做了不少改进,并且发布了一个自己的版本PWB/UNIX),一个叫USG(UNIXSupport Group)。糟糕的是,这几个小组互相看不顺眼(文无第一,武无第二,这也是没办法的事:),对UNIX的理解也不尽相同,乃至各自散发出去的的版本都不是很兼容,UNIX复杂到让人头大的谱系这时就已开了滥觞。

  在这种状况下,UNIX尽管在教育科研领域声誉日隆、炙手可热,但对计算机产业的影响仍然有限,毕竟它还只是一种非标准化、非商业运作的技术,只能拿来用,没法靠它赚钱。后来AT&T的政策松动了一些,在1978年前后,才开始出现商业公司提供UNIX的技术服务。1980年,AT&T发布了UNIX的distribution binary许可证(可分发二进制版),这下别的公司终于可以用UNIX来卖钱了,第一家买下这种许可证的公司是Onyx Systems,值得一提的是,它的产品是微机(比较另类的一种,采用Z80000的CPU),UNIX与微机的渊源可谓由来久矣。

  差不多与此同时,有公司开始开发UNIX的克隆版――就是全盘复制UNIX的功能,可以兼容UNIX的程序,但代码完全重写。第一个版本是Whitesmiths 公司推出的IDRIS(它雇了几个前AT&T的程序员,还曾经推出第一个商业C语言编译器,),开始为了避免版权纠纷,Whitesmiths有意在库名称及参数顺序等地方作了些小改动,后来AT&T高姿态地宣布不追究这些细节,于是开发与UNIX完全兼容的系统成为可能,很快很多公司(包括几乎所有的业内大腕)就开始蜂涌而上了:)。顺便说一下,上世纪末的时候,有一家澳大利亚公司曾开发出一个兼容Windwos的操作系统,但因为版权关系,没来得及推广就夭折了:(。

  举几个开发过UNIX克隆版本的公司名字,有IBM(名字叫AIX,1986年发布),HP(HP- UX,1982年),SGI(IRIX,1987年),Microsoft(XENIX,1980年),SUN(Solaris,1985年), Apple(MacOS X,2001年)~~~~其中有一些主要源自BSD的版本,如SUN和Apple,但追根究底,仍是来自那个出于Bell Labs的天才发明。Bell Labs的一位高层人物后来曾说,UNIX和晶体管是Bell Labs最重要的两项成就。如此评价,Thompson和Ritchie应该可以得意地笑了:)。
 
[画外音 from 胖蹄]

大家可能觉得奇怪,印象中Xinix是和SCO联系在一起,好像没Microsoft什么事情.
这感觉也是对的,因为Microsoft没有直接销售过Xenix,而是license 给Intel, Tandy, Altos and SCO,是SCO把Xinix port到8086上面,在80年代后期到90年代初期,Xinix是装机量最大的UNIX, ,那时中国金融界几乎都是SCO的客户.

1995年,SCO 从Novell手里购买了AT&T Unix的source code和uniware 操作系统

2000年败家子SCO自废武功,把server和服务业务卖给Caldera Systems,自己更名成一个拗口的名字,Tarantella, Inc.

Caldera 以前是做Linux的,在windows 95以后还以著名的DR-DOS为基础,做了一个OpenDOS,可惜自Windows 95以后PC用户还用DOS的可谓凤毛麟角.


2002年Caldera Systems换了老板,无尸还魂,把自己又rename成SCO Group.和Linux阵营彻底决裂,起诉IBM和各大著名厂商侵犯其手中的UNIX知识产权,并以此为生,遭到open source和UNIX阵营的一致鄙视
 
哈哈, 对爱蹄人来说是饭后消食贴, 对俺来说就是睡前催眠贴...
 
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这下郁闷死了~~~:)。
 
4.3版过了三年才发布(1986年6月),尽管间隔时间如此之长,但这一版远没有4.2版那么富于革命性,它主要是对4.2版做了些修补和优化,虽然反响不错,但也仅此而已,对业界的影响远不能与4.2版相提并论。比较值得一提的是,在发布后的晚些时候,CSRG的两个牛人,叫做Casey Leedom和Keith Bostic的,对这一版做了一次匪夷所思的移植。
  从第3版开始,BSD就是基于VAX机在搞开发,VAX是32 位机,通常配有1M内存(两个内存块,每块面积有4分之1平方米,还可以配更大,寻址能力4GB,即2的32次方)及高速的磁盘(容量通常为5MB或 10MB,很惊人的说~~~~),所以BSD可以实现诸如内存换页以及新文件系统等技术革新,而Leedom和Bostic现在要做的,是将4.3版移植到PDP-11上。PDP-11我们应该都比较熟悉了,UNIX的第一个正式版本就是在它上面完成的,它是DEC经典的16位机,作为那个年代流传最广的廉价计算机之一,可以理解,它拥有为数众多的FANS。但无可否认,到了1986年,它早已落后了(事实上这时连VAX机都已年满8岁,颇显老态,1年前连微处理器都发展到了32位的Intel 386),以它可怜的64K的内存寻址能力(即2的16次方,这个限制对促进UNIX短小精悍的应用程序设计风格意义重大,不得不说,硬件的简陋往往能促生优秀的软件设计,这一点在Palm系统上也得到了证明)、512K的磁盘要跑4.3BSD简直是说梦话,CSRG里的大多数人虽然都很怀疑,但还是支持他们两个试试看(这么好玩的事换我也会支持,想想看,谁要是能把Windows NT移植到286上面~~~~,呵呵)。让人大跌眼镜的是,这两个牛人不仅移植成功,居然还跑得很好――UNIX的可移植性真不是吹的:)。这个跑在 PDP-11上的新系统被命名为2.11BSD(2BSD原本是最后一个在PDP-11上开发的版本),具备和4.3BSD差不多相同的功能,很受PDP -11用户的欢迎,一直陪伴许多PDP-11工作到寿终正寝,据说直到今天,在世界上的某些角落,偶尔还可以找到跑着2.11BSD的PDP-11 (PDP-11起码也有30多岁了,不管是作为一台计算机还是作为一个电子设备,这样的高寿都很值得骄傲的说,而2.11BSD作为一个软件,20多年的寿命倒不算太难得,一些行业用户的程序往往非常古老,比如一些银行系统里大型机上的Cobol代码,有三四十年历史也不稀奇)。
 
4.4版的BSD于1994年6月发布,这一BSD的最终版本距离4.3版足有八年之久(Vista有望一比,巧的是,微软也吹风说Vista可能是传统 Windows的收关之作,集大成者想来是得多些时间酝酿),虽然间隔如此之久,但4.4版也说不上有太大的技术进步(大概是4.2版用力过猛,加上别的问题困扰,CSRG一直没缓过劲来),但它解决了一个很关键的非技术问题,可说是意义非凡。这八年中曲折甚多,值得一说。

  截止1986年, 4.3BSD除了一个BT的PDP-11移植版外,并没有向其它机器移植,一定程度上是因为系统中有许多针对 VAX特有硬件的设计,移植并不容易,而此时VAX已日薄西山,开拓新疆域迫在眉睫,CSRG想一劳永逸地解决这个问题,于是由Joy操刀,将BSD的内核分离成两块,一块依赖于机器,一块则独立于机器,这样可以大大简化移植工作的难度。这项工作于1988年完成,CSRG发布了一个叫作4.3BSD- Tahoe(Tahoe是加州的一个高山湖,旅游胜地)的版本,于是许多移植工程就基于这一版展开了。
  这时另一个问题又暴露出来,因为BSD 中包含有AT&T的代码,如果想获得BSD代码的使用权,你还得向AT&T购买一份源代码许可证,随着BSD越来越受欢迎, AT&T的价码也是越来越高(最初只要一万多美元,后来涨到好几万),许多人就开始抱怨,尤其是那些计算机公司。他们多半看中的是BSD中的网络模块,而这一部份根本不关AT&T的事(实际上AT&T自己的SVR都是用的BSD的网络代码),现在却非得去出这一份冤枉钱,实在是太亏了。于是许多人都建议CSRG把AT&T的代码去掉,把网络模块单独拿出来卖,或者干脆搞一个完全属于自己的版本(著名Hacker,自由软件的倡导者Richard Stallman早在1987年就向CSRG提出过这种建议,当然他是站在更高的立场,是为了让UNIX摆脱商业公司的束缚)。

  完全去除AT&T的代码的代码是一项大工程,所以CSRG先拿出了一个叫做Networking Release 1的东东。这不是一个完整的系统,而仅仅是一个网络模块,该版本于1989年发布,同时发布的,还有CSRG对这一版本拟定的一个许可协议。也许是受了 Stallman的GPL(General Public License)的影响,这个协议鼓励修改源码和再次发布,而且它非常宽松,比GPL宽松得多,它允许再次发布时只发布二进制版本,而不附带源码(这在 GPL中是不允许的),只需附带完整的版权声明即可(“完整”的意思是,要把该软件的渊源交待清楚,包括它来自Berkeley,以及中间还经过谁谁的修改――怎么觉得有点象纪念碑,呵呵)。后来在Networking Release 2发布时仍使用了这一协议,到4.4版发布时,这一协议演变为BSD License,后来FreeBSD又将其修改为FreeBSD License,基本上也都大同小异(因为许可太宽松,所以很多人都把FreeBSD拿过来,修改一番再拿去卖,比如前些时闹的沸沸扬扬的所谓国产操作系统“麒麟”,只是国防科技大学他们(还有其他几个公司,不一一点名)的做法未免有失厚道,不遵守版权协议也就罢了,还企图掠人之美、瞒天过海)。

  这样宽松的许可协议,等于认可一个人买下后,就可以无限制的Copy给其他人,事实上也正是这样,刚一发布,就有一些著名的FTP站点提供开始匿名下载。虽然如此,CSRG还是卖出了几百份Copy,每份定价$1000,算下来也有几十万美金,在那些财大气粗的公司看来这点小钱简直不值一提,但 CSRG的人还是很开心:)。
 
1991年,CSRG发布了Networking Release 2。与Networking Release 1一样,这个版本完全由CSRG的代码构成,不同的是,它的内容要比Release 1要丰富的多,接近于一个完整的系统。
  在这两年里,CSRG除发布了一个试验性质的4.3BSD- Reno之外(这个版本比较奇怪,它的主要改进是加入了来自Mach操作系统的虚拟存储模块,以及来自SUN的网络文件系统(NFS),不仅代码是采取拿来主义,连集成工作也是由来自别的大学的志愿者捉刀,Reno是Lasvegas的一座纪念建筑,用意在于表明选用这一版本的风险),大量的精力被用来剔除AT&T的代码,这一工作主要由Keith Bostic、Mike Karels和Marshall McKusick完成,事实上到Networking Release 2发布时,AT&T的代码已经被替换的差不多了,仅剩下6个核心文件没有重写。
  Release 2被CSRG当作发布完全自主版本的一个尝试,沿用了Release 1的发行方式,虽然加了很多料,但定价一样,销量也差不多。在发布6个月之后,Bill Jolitz把剩下的6个文件也重写了一遍,并把整个系统移植到386架构上(在此之前己经有BSD的PC移植版,但影响不大),发布了一个新版本,叫做 386/BSD 0.1(Linux发布之初,也采取了这样谨慎的命名方式),它完全免费,Jolitz还专门建了一个Ftp提供下载。这时PC早己是星火燎原、深入人心,可以想象,这一举措受到了热烈欢迎。
  当前流行的所有BSD版本都是源自386/BSD,但386/BSD自身发展的却并不好,照 Jordan Hubbard(FreeBSD和Darwin的创立者之一)的说法,在NetBSD、FreeBSD诞生之后,它很快就象渡渡鸟一样绝迹了。 Jolitz技术上很牛X,但似乎缺乏人际交往和组织管理方面的能力,因此386/BSD的开发团队很快就分崩离析了,我看到Hubbard在一次访谈中对他抱怨颇多(人无完人,其实技术牛人出现这种状况也很常见,更著名的如William Shockely,这个大牛人、晶体管的发明者之一,甚至在当公司老板时获得了诺贝尔奖,但终因傲慢与独裁,导致手下的人才流失殆尽,本来前途无量的公司最终落得个惨淡收场,但另一方面,Fairchild和Intel倒也可说是拜他所赐 :);还有,John Carmark,这个许多人眼中最牛的程序员,在管理和沟通方面也曾陷入困境,如日中天的ID Soft差点被他整熄火,但他运气不错,最后算是跌倒了又爬起来:)。
 
当今流行的BSD版本主要有三个,NetBSD、FreeBSD以及OpenBSD。NetBSD资格最老(其实也只比FreeBSD早了几个月而已),在386/BSD发布几个月后由一群爱好者组成的小组推出,它被看作是最接近传统BSD版本,拥有最佳的可移植性,支持最多种类的机器(大约有五六十种,从巨型机到手机,号称只要是有处理器的设备,它都可以支持);FreeBSD则是最为著名、也是流传最广的版本,它对PC平台的支持最好(因此支持的平台种类也就较少),有最多的应用支持,它也是与Linux竞争最直接的Unix版本,它有一个Linux的模拟模式,在一定程度上兼容Linux程序(实际上Linux上有大量的程序都是从BSD系统上搬过来的,所以谁兼容谁倒也难说:);OpenBSD诞生较晚(1995年),它立志要当世界上最安全的操作系统(事实上也做的非常成功,但那个“最”字很难说,其实要说安全,往往与“OPEN”是对冤家,越是封闭的系统越安全,但作为通用系统,封闭又恰恰是设计的大忌,所以关于安全性的问题往往成了开放与安全之间的博弈),因此也得到了DARPA的资助(记得吗?BSD的发展很大程度上也得益于此),它对多平台的支持也很不错,但比较难用,因为它倔强的核心开发者Theo De Raadt说,我们要用更多的精力保证它更棒,而不是更美味可口:)。
  此外还有一些别的版本,比如Apple的NeXTStep(本来是Jobs自立门户期间一个野心勃勃的项目,NeXT于1996年被Apple收购, Jobs借此机会归了队,NeXTStep的设计后来被融入osX),以及MACos X的核心Darwin(尽管MACos X是一个专有系统,但Darwin本身其实是一个开源项目),还有一个2003年才推出的版本DragonflyBSD,它源自FreeBSD4.X,因为有一伙人对FreeBSD5的发展方向不满,于是就派生了这么个分支。
  以上这些现在只简单提两句,后面会作进一步介绍,回过头接着说BSD的事。

  Networking Release 2发布几个月后遇到了一点麻烦。一个新成立的公司BSDI(Berkeley Software Design)自作主张,把Networking Release 2缺少的那6个文件补了上去(应该就是直接用的 AT&T的代码),凑了一个相对完整的版本拿出来卖,价格只要$995,当然也带源码,他们做了些夸张的广告,声称比System V要便宜99%云云。于是USL(就是AT&T的那家子公司)一怒之下,就把它告了。但BSDI辩称自己用的是BSD免费发行的代码,要说有问题也就那6个文件可能有点问题,于是USL捎带着把加州大学(Berkeley是它的分校)也告上了,要求他们停止发布被认为是侵权的软件。 Berkeley也被惹火了,稍后对USL提出了反诉,借口是System V使用了BSD代码的署名权问题。

  经过一番热热闹闹、缠夹不清的诉讼程序之后(其间USL被Novell从AT&T买走,Novell对此案件的态度比较温和),两家还是坐下来用谈判解决问题,最终在1994 年1月达成协议,Networking Release 2的18,000个文件中有3个被删除,还有几个作了少量修改,另有70个加上了USL的版权声明,但仍免费发放。总而言之,没怎么伤筋动骨,这场经历了两年多的热闹最终是雷声大雨点小。

  CSRG现在总算有精力干点正经事了。1994年6月,他们终于发布了4.4BSD,而且同时发行了两个版本,一个叫4.4BSD-Lite,一个叫4.4BSD-Encumbered,这完全是因为版权问题。4.4BSD-Lite完全是自有代码(而且终于获得了USL的认可),但功能不太完整,Encumbered则是一个功能完整的版本,但仍需要用户买一份USL的源代码许可。不出意料的是,仍是那个功能单薄点、但完全自由的4.4BSD-Lite更受欢迎,它成为BSDI、NetBSD、FreeBSD等发行版本新的代码来源。

  1995年 6月,4.4BSD-Lite release2发布,从版本号就看得出来,这是一个缝缝补补的版本,实际上这期间CSRG已经没怎么搞开发,仅仅有一个人在兼职搞善后罢了。 release2发布的同时,CSRG宣告解散,官方说法是,BSD已发展的相当成熟,对于操作系统的研究目标已经达到。十五年的光辉岁月,大量牛人出没其中,并在此扬名立万,CSRG这个名字在计算机历史上已堪称不朽。
 
要说BSD最大的功臣,自然非Bill Joy莫属,关于这个牛人,以及他呆了半辈子的Sun公司,有必要再说两句。
  Joy从小是个天才儿童,5岁就开始做高等数学习题――计算机牛人好象都是小时了了、大了亦佳:),比如Neumann,也是很小的时候,大概念小学的年纪,就可以玩转微积分。H.Poincare曾说数学家是天生的,不是造就的,计算机科学家也差不多,天分可能更重要一些(我可没说努力不重要)――15就考上大学。他考研时立志学计算机,当时计算机系最牛的几个大学,Stanford、CIT(California Institute of Technolog,加州理工学院)还有Berceley都录取了他,选择Berceley则是因为那儿的计算机设备最差,Joy觉得这样有利于自己发挥创造才能(牛人果然是与众不同:)。但Joy大概是因为忙于搞开发,Ph.D读了6年也没搞到手(拿一个正经的学位确实不容易,Linus一个硕士也读了好多年:),Joy一看,还不知道得念到什么时候,就把心一横,跟着别人开公司去了(辍学也是牛人们一个传统的说:)。
  Sun是 Stanford University Network的缩写(它的商标很有意思,极简单的图形,却体现了递归和循环的意味,不愧是搞计算机的),与Stanford的渊源一望可知。四个创始人中,除了Joy,全都是Stanford的毕业生,其中Scoot McNealy(大BOSS,强人,以大嘴著称:)和Vinod Khosla(来自印度,著名风险风险投资家)都是MBA,另外一个,Andreas Bechtolsheim则是搞电气工程的(他提出了搞Unix工作站的构想,于是Sun公司就围绕这个想法展开)。他们看准了电脑网络的大好前途,在公司筹建之初就提出了“网络就是计算机”的口号,在1982年,这的确是高瞻远瞩(Gates到1993年还在说Internet没什么前途,等到 Netscape坐大后才慌了手脚:)。
  Joy到了新天地不改牛人本色,除了搞本行(开发操作系统)以外,他还负责开发CPU(和TI合作, TI(Texas Instruments,德州仪器)是做CPU的老牌厂商之一,在486时代,它的兼容CPU红火过一阵,现在主要做手机及消费数码芯片, MP3/MP4、掌上电脑等,在手机CPU市场占的份额好象是第一),他自己完成了最关键的一部分线路设计,于是SPARC就问世了(1987年,采用 RISC架构,具备最强悍的可扩展性,在业内长期居于领先地位,Sun在Unix机器市场占据半壁江山,SPARC居功甚伟),这种行径当真是骇人听闻, Wintel两家的事他一个人都包了,有了这样的“首席科学家”,Sun想不牛都难啊。
  Sun自己的操作系统于1985年推出,就叫Sun OS,当然,是由Joy操刀。该版本基于4.2BSD,Joy做起来自然是驾轻就熟。1995年,在发布了3.5和4.0两个版本之后,Sun OS加上了桌面环境,CDE什么的以及改进的网络模块,系统被改名为Solaris,而Sun OS被用来指称系统内核,Solaris最早的版本就是2.0(内核则是Sun OS 5.0,头胎就叫王二麻子,呵呵:),到了2.6版以后,Sun觉得不爽了,就把2去掉,以后的版本号就成了7、8、9、10,更新很规律,基本上两年一版。
 
后退
顶部
首页 论坛
消息
我的