图灵奖得主演义

“图灵”趣话(ZT)

最初由 小傻 发布
应该讲讲图灵了吧
行,这就讲讲图灵
BTW,昨天去你说的那家肉铺了,羊肉是冻的,价格上也没有什么优势,就没敢买

==============================================================
图灵”趣话



对于每一个行业和领域来说,几乎都存在一两项令其领域内所有人视为“终极荣誉”的大奖,例如电影业的奥斯卡奖、新闻领域的普利策奖,数学领域的沃尔夫奖和费尔兹奖等等。随着计算机通讯业的迅猛发展,“图灵”这个词频频出现在各个场合,尤其是去年比尔.盖茨携微软高层人员来华一行,期间多次提到“图灵奖”一词,而且大家对获得该奖项的人士更是恭敬有加,好奇之余,我便查阅资料,不想却发现了许多趣事,于是写来与大家分享。
  “图灵(Turing)奖”是美国计算机协会(ACM,Association for Computer Machinery)干 1966年设立的,专门奖励那些对计算机科学研究与推动计算机技术发展有卓越贡献的杰出科学家。设立的初衷是因为计算机技术的飞速发展,尤其到20世纪 60年代,其已成为一个独立的有影响的学科,信息产业亦逐步形成,但在这一产业中却一直没有一项类似“诺贝尔”、“普利策”等的奖项来促进该学科的进一步发展,为了弥补这一缺陷,于是“图灵”奖便应运而生,它被公认为计算机界的“诺贝尔”奖。

            “图 灵”为 何 如 此 幸 运
[ 相约加拿大:枫下论坛 rolia.net/forum ]
不少人梦寐以求的国际计算机的最高奖项――图灵奖,为何它如此幸运,真是说来话长。
  阿兰・图灵(Alan Turing),1912年6月23日出生于英国伦敦,他被认为成二十世纪最著名的数学家之一,谁也没有想到他的名字会和计算机产业挂钩。

   20世纪的数学界正在热烈的讨论本世纪最伟大的科学发现之一 ――昆特.哥德尔的不完全性定理,在那以前,数学家们总认为,一个数学问题虽然要找到答案也许会很困难,但理论上总有一个确定的答案,一个数学命题,要么是真的,要么是假的。而哥德尔的不完全定理指出:在一个稍微复杂一点的的数学公理系统中,总存在那样的命题,我们既不能证明它是真的,也不能证明它是假的。数学家们大吃一惊,发现以往大家认为绝对严密的数学中,原来有令人如此不安的不确定性。每个逻辑学家都在苦苦思索,试图为陷入了危机的数学找到一条出路,这些逻辑学家包括当时在剑桥的贝特朗.罗素( Bertrand Russell ) 、阿尔弗雷德.怀特海(Alfred Whitehead)、路德维格.维特斯根坦 ( Ludwig Wittgenstein) 等著名的逻辑学家。这时的图灵正在剑桥求学,他也同样为此问题陷入了困境。

  1936年,图灵作出了他一生最重要的科学贡献,他在其著名的论文《论可计算数在判定问题中的应用(On Computer numbers with an Application to the Entscheidungs -problem)》一文中,以布尔代数为基础,将逻辑中的任意命题(即可用数学符号)用一种通用的机器来表示和完成,并能按照一定的规则推导出结论。这篇论文被誉为现代计算机原理开山之作,它描述了一种假想的可实现通用计算的机器,后人称之为“图灵机”。

  这种假想的机器由一个控制器和一个两端无限长的工作带组成。工作带被划分成一个个大小相同的方格,方格内记载着给定字母表上的符号。控制器带有读写头并且能在工作带上按要求左右移动。随着控制器的移动,其上的读写头可读出方格上的符号,也能改写方格上的符号。这种机器能进行多种运算并可用于证明一些著名的定理。这是最早给出的通用计算机的模型。图灵还从理论上证明了这种假想机的可能性。尽管图灵机当时还只是一纸空文,但其思想奠定了整个现代计算机发展的理论基础。

  1945年,图灵被调往英国国家物理研究所工作。他结合自己多年的理论研究和战时制造密码破译机的经验,起草了一份关于研制自动计算机器(ACE: Automatic Computer Engine )的报告,以期实现他曾提出的通用计算机的设计思想。通过长期研究和深入思考,图灵预言,总有一天计算机可通过编程获得能与人类竞争的智能。1950年 10月,图灵发表了题为《机器能思考吗?》的论文,在计算机科学界引起巨大震撼,为人工智能学的创立奠定了基础。同年,图灵花费4万英镑,用了约800个电子管的ACE样机研制成功,它的存储容量比爱尼亚克[ii]大了许多。在公开演示会上,被认为是当时世界上速度最快、功能最强的计算机之一。图灵还设计了著名的“模仿游戏试验”,后人称之为“图灵测试”。该实验把被提问的一个人和一台计算机分别隔离在两间屋子,让提问者用人和计算机都能接受的方式来进行问答测试。如果提问者分不清回答者是人还是机器,那就证明计算机已具备人的智能(1993年美国波士顿计算机博物馆举行的著名的“图灵测试” [iii]充分验证了图灵的预言)。

  这让我想起前几年IBM公司研制的计算机“深蓝”与国际象棋世界冠军卡斯帕罗夫进行的那场人机大战,最终以“深蓝”战胜卡斯帕罗夫而宣告结束,让我们不得不佩服图灵的天才预言。

  现代计算机之父冯・诺依曼[iv]生前曾多次谦虚地说:如果不考虑巴贝奇[v]等人早先提出的有关思想,现代计算机的概念当属于阿兰・图灵。冯・诺依曼能把“计算机之父”的桂冠戴在比自己小10岁的图灵头上,足见图灵对计算机科学影响之巨大。

毒 液 浸 透 苹 果,如 睡 之 死 渗 入 ……

身为一名数学家, 图灵模型研制计算机的梦想在第二次世界大战的爆发中粉碎。当时,德国法西斯正对英伦三岛狂轰滥炸,图灵的祖国危在旦夕,怀着一腔报国热情,图灵前往英国外交部承担“超级机密”研究工作,即主持对德军通讯密码的破译工作。图灵便和历史上著名的布莱奇利公园以及加密电子机械装置ENIGMA联系在了一起。

  ENIGMA是德国发明家亚瑟.谢尔比乌斯(Arthur Scherbius)发明的一种加密电子器,它被证明是有史以来最可靠的加密系统之一,二战期间它开始被德军大量用于铁路、企业当中。英国第40局(英国政府负责破译密码的间谍机构)开始恐慌,因为出现了大量他们无法破译的电文。在整整13年里,英国人和法国人都认为ENIGMA是不可破译的。针对这一情况,40局新设了它的机构――英国政府代码及加密学校(GC&CS ,Government Code and Cipher School),总部坐落在白金汉郡的布莱奇利公园。在布莱奇利公园有一大批为破译ENIGMA作出卓越贡献的人们,图灵无疑是他们当中最值得叙述的一个。图灵发明了绰号为“炸弹” (Bombes)的解密机器,他被看成一位天才解密分析专家。战争结束,布莱奇利公园被关闭,“炸弹”被拆毁,所有战时有关密码分析和破译的档案资料都被销毁,直到1967年波兰出版第一本关于波兰破译ENIGMA方面的书,以及1974年温特伯坦姆写的《超级机密The Ultra Secret》一书出版,人们才知道图灵在分析解密方面的贡献。

  1938年迪斯尼公司著名的动画片《白雪公主和七个小矮人》上映,图灵也观看了这部影片,在后来的日子里,他的同事常常听见他哼电影中巫婆王后泡制毒苹果的台词:“毒液 浸透苹果如睡之死渗入……”而图灵的一生正是在这首歌词中结束。

  图灵在他生命的最后时光,没有机会看到自己被当作一个解密英雄来尊敬,相反,由于他同性恋的性倾向而倍受折磨。1952年因小偷入室行窃,图灵向警察报了案,但他却忘了向警察掩藏他和另一位男士同居的事实,同年他被警方逮捕,以“有伤风化罪”罪名遭到起诉,并被判为有罪。而这期间,他不得不忍受报纸媒体对他案件的公开全面报道。性倾向被公开,私生活曝光于大众,政府也取消了他情报部门的工作。他的脾气变的躁怒不安,性格阴沉郁悒。1954年6月8日,人们在图灵的寓所发现了他的尸体。他在自己的住处服用沾过氰化物的苹果而自杀。临死的前夜,也许图灵的耳边还回响着那首歌:“毒液浸透苹果如睡之死渗入……”

  迄今为止,作为计算机界“诺贝尔奖”的图灵奖已走过了36个春秋。40多位图灵奖得主均对计算机科学与技术的发展创新做出了杰出贡献。他们在珍惜自己所获崇高荣誉的同时,也深切怀念阿兰・图灵这位在计算机创新史上永放光芒的先驱。


--------------------------------------------------------------------------------

1854年,英国数学家乔治・布尔(George Boode)出版了名著《布尔代数》。书中用“真”、“假”两种逻辑值和“与”、“或”、“非”三种逻辑运算把形式逻辑归结为一种代数。

[ii] “爱尼亚克”是世界第一台实用数字电子计算机,1946年2月15日在宾西法尼亚大学正式投入运行。

[iii]该次测试评判员与封闭在密室的计算机或人进行15分钟的交谈,然后根据交谈的印象判断交谈对方是人还是计算机。其中“PC理疗3号” 让评判员误认为“他”是一名聊天高手,而另有两位评判员误将一位小姐指认为计算机。所以充分证明了图灵预言的正确性。

[iv] 约翰・冯・诺依曼 ( John Von Nouma,1903-1957),美藉匈牙利人。提出了著名的"冯・诺依曼机"设想,其中心就是有存储程序原则――指令和数据一起存储.这个概念被誉为 '计算机发展史上的一个里程碑",它标志着电子计算机时代的真正开始,指导着以后的计算机设计。

[v] 查尔斯・巴贝奇, 英国人。 他写出了世界上第一部关于计算机程序的专著,他发明的解析机是现代电子计算机的雏形。
 
1987 John Cocke(ZT)

John Cocke


Citation
For significant contributions in the design and theory of compilers, the architecture of large systems and the development of reduced instruction set computers (RISC); for discovering and systematizing many fundamental transformations now used in optimizing compilers including reduction of operator strength, elimination of common subexpressions, register allocation, constant propagation, and dead code elimination.
--------------------------------------------


1987年获奖的John Cocke,在Duke大学获数学博士学位。毕业后进入IBM公司工作,同时也在MIT和NYU的Courant研究所做过客座教授。主要贡献是发明了 RISC(reduced instruction set computers),大大改善了芯片的性能。

John Cocke 在 1950 年加入 IBM 时的第一个任务是从事 Stretch 计算机的研制。虽然这个系统的性能没有达到他当时所承诺的超过 IBM 704 大型机的 100 倍以上,但是其性能的确超过它 30 倍以上。这个系统倡导了很多方面的技术,例如:流水线,程序分支预测,多线程编程,内存保护,通用中断,8 位字节,等等。这些技术后来都在 IBM 的 System/360 产品线中采用,而且一直影响了目前市场上大部分芯片的发展。
704 的后继者称为 Project X,它是 Stretch 的后继者 Project Y 的竞争对手。尽管 Project X 后来成为 IBM S/360 系列的大型机,而 Project Y 后来成为 ACS (高级计算系统),但是 IBM 的最初目的是要制造一台超级计算机。ACS 是 John 在 Stretch 之后又从事的项目,它也是 John 的下一个项目 801 的祖先。



IBM 的 John Cocke 在实现复杂性领域并不是生手,他早就从事于 IBM Stretch 计算机的研究,IBM Stretch 计算机是 IBM 704 大型机的一个竞争对手,它的继承者是 ACS (高级计算机系统);而 704 的继承者是 S/360,二者也是竞争对手。



他对指令集进行了拆分,并设计了一台只有当时同类计算机一半电路的机器,但是其运行速度却是同类计算机的两倍。快速的核心和更少的电路带来的不仅仅是性能的提升,而且功耗也更少(这对于现在的很多用户来说都是最重要的一个问题),成本也更低。这种体系结构称为 RISC(精简指令集计算机)。有些人喜欢称 RISC 为“load-store”,意思是想强调 RISC 计算机只有 100 多条指令(POWER 体系结构也是如此)。其他的 RISC 计算机并没有采用一套精简指令集,而是采用一组精简过的指令:CISC 的每条复杂指令都被拆分成更小的基本单元,然后再组合起来实现复杂指令的功能。

无论如何,CPU 中的复杂性并没有简单地消失,而是转嫁到编译器中了。为了更好地实现这种功能,John Cocke 不仅成为编译器领域的专家,而且在编译器的优化方面特有专长。他在 RISC 和编译器优化方面的工作为他赢得了很多荣誉,其中包括 1987 年的图灵奖。


就 IBM 801 而言,它从来都没有成为一个电话转换器。相反,IBM 801 后来成为第一个 RISC 芯片,在很多 IBM 的硬件产品中广泛采用 ―― 曾经有一段时间,它作为一个微控制器和处理器甚至限制了其竞争对手 IBM 大型机的发展。

RISC 体系结构在工作站和嵌入式市场中很快占据了主导地位,John Cocke 之后又转入其他项目的研究之中。在 20 世纪 80 年代,他有机会在一个后来被命名为“America”的项目中重新提炼 801 的设计,这个项目后来就成为 POWER 系列的芯片。之后的几年中,他甚至在 PowerPC 体系结构的开发中贡献了很大的力量。与 801 类似,PowerPC 也被设计成为可以在任何机器上运行的一个通用微处理器,它在从最高端到最低端的机器上都可以运行。

现在,RISC 体系结构是惟一一种最通用的 CPU,它是很多平台的基础:从工作站到蜂窝电话,从视频游戏终端到超级计算机,从交通指示灯到桌面系统,从宽带调制解调器到自动加油站和防撞系统。甚至 x86 的制造商(他们在相当长的一段时间内都生产 CISC 芯片)也基于 RISC 体系结构研制了他们的第五代和第六代芯片,并将 x86 的操作码转换成 RISC 操作,以保持向后兼容。


John Cocke 是世界上一个真正的 黑客,他永远改变了芯片设计和计算机世界。由于这一点,他获得了很多业界和国家的奖项,其中包括 Franklin 学院奖 和 1987 年的图灵奖。
 
Frederick P. Brooks, Jr.


Citation
For landmark contributions to computer architecture, operating systems, and software engineering.
----------------------------------------------------------------------------------------

Frederick Brooks传记

20世纪最后一年也就是1999年的图灵奖,授予了年已69岁的资深计算机科学家布鲁克斯(Frederick Phillips Brooks, Jr.)。布鲁克斯这个名字在中国知之者不多,但在美国却是大名鼎鼎。因为他在60年代初只有29岁时就主持与领导了被称为人类从原子能时代进入信息时代标志的IBM/360系列计算机的开发工作,取得辉煌成功,从而名噪一时。以后他作为硬件和软件的双重专家和出色的教育家始终活跃在计算机舞台上,在计算机技术的诸多领域中都做出了巨大的贡献。从某种意义上说,对于布鲁克斯而言,图灵奖是一个“迟到的荣誉”

布鲁克斯1931年4月19日生于北卡罗来纳州的杜哈姆。1953年从杜克大学毕业,取得学士学位以后,进入哈佛大学深造,1955年取得硕士学位, 1956年取得博士学位。值得指出的是,布鲁克斯取得的是计算机科学的博士学位,是一位“正宗”的计算机博士,是世界上第一批获得计算机科学博士学位的少数学者之一。他的博士论文课题工作是在哈佛著名的计算实验室(Computation Laboratory)进行的。大家知道,40年代被称为MARKI的世界上第一台程序控制的机电式计算机ASCC(Automatic Sequence Controlled Calculator)就是由艾肯(Howard Hathaway Aiken,1900~1973)在这里设计,并获得IBM的支持而开发成功的。请大家注意,叫MARK的计算机有两种。除哈佛艾肯设计的ASCC被叫成 MARK外,英国曼彻斯特大学由威廉斯管的发明人F.C.Williams和T.M.Kilburn等人研制的MADM计算机(1848年)也被叫成 MARKI,这是一台用威廉斯管作存储器并可存储程序的计算机,有时也叫做“婴儿”机(Baby)。通常提到的MARKI指哈佛的那一台。布鲁克斯最终完成的博士论文题目为“自动数据处理系统的分析设计”(“TheAnalytic Designof Automatic Data Processing System”)。从博士论文开始,布鲁克斯的一生就与计算机结下了不解之缘。

在哈佛取得博士学位以后,布鲁克斯进入IBM公司设立在纽约波凯普茜的实验室当工程师。这个实验室从50年代到80年代一直是IBM开发计算机的中心。布鲁克斯在这里参加了Harvest和Stretch计算机的开发,任体系结构设计师。这两个型号的计算机都引入了一些新技术,在50年代后期至60年代初期有很大影响,尤其是Stretch计算机,首创先行控制方式,最多可重叠执行6条连续的指令,后来被发展成流水线方式,因而被认为是世界上第一台流水线计算机。布鲁克斯在其中的创造性贡献是解决了程序中断系统的设计,在数据格式中出现不均匀的字符分布时如何设计其二进制代码等问题,并从而在1957年取得了他的第一个美国专利“程序中断系统”(Program Interrupt System,专利号3048332,与D.W.Sweenly共有),发表了他最初的两篇学术论文。

1959年,布鲁克斯曾被调至IBM在约克郡高地的研究中心工作,但第二年又重新被调回波凯普茜的实验室,因为当时IBM内部在计算机的研发方向上产生了重大的分歧。1960年时,IBM的计算机生产线上的产品是8000系列,但遭到一些人的反对,其领头人是伊万斯。伊万斯虽然只是衣阿华州立大学电气工程系的一个本科毕业生,但1951年就加盟IBM,曾参与或主持过IBM701、7070、1410、7070等多种型号计算机的开发,已经积累相当丰富的知识和经验。他经过认真分析,认为主要继承IBM原有技术的8000计算机,即使研制成功并上市,过不了几年,即到1964年就会丧失生命力,缺乏市场竞争能力。因此他主张8000机下马,采用新的技术开发新的计算机,尤其是要开发新的操作系统。伊万斯的意见使IBM分裂成为两派,一派支持,一派反对,而反对派的领头人正是布鲁克斯!

两派的争论和对立非常尖锐,又势均力敌,因为伊万斯的学历没有布鲁克斯高,但资历却比他老,双方的支持者人数也差不多。以小沃森(Thomas John Watson, Jr.)为首的IBM决策层于1961年5月担着极大的危险最后采纳了伊万斯的意见,是年秋宣布成立一个名为SPREAD(系统程序设计、研究、工程和开发,Systems Programming, Research, Engineeringand Development)的委员会作为“taskforce”(类似于我国过去经常采用的所谓“攻关领导小组”),由13人组成,主席为汉斯特拉 (John w. haanstra),副主席为伊万斯,布鲁克斯是成员之一。作为争论中胜方的伊万斯冷静地分析了形势以后,做出了一个令人大感意外的决定,他亲自找到布鲁克斯,请布鲁克斯主持日后被称为IBM/360的这个新项目。伊万斯这一举动主要基于以下两点考虑,一是如果由他自己来主持360,那么原来反对他意见的另一派人很难团结在他的周围;二是涉及这样重大改革与创新的项目,应该让年轻人来挑头。他自己虽然当时也只有34岁,但布鲁克斯比他小5岁,更加年轻。难能可贵的是,布鲁克斯作为争论的负方,慨然接受了伊万斯的邀请,同意负责这个他曾经反对过的项目!这个故事很像我国京剧舞台上的“将相和”(虽然伊万斯并未“负荆请罪”)。伊万斯和布鲁克斯双方在这件事上所表现出来的明智、大度和勇气都十分令人钦佩和赞叹。

其结果和效果就是整个IBM公司的职工果然团结起来,实现了痛苦而艰难,然而却是历史性的转变和飞跃。IBM/360的开发总投资5亿美元,达到美国研究原子弹的曼哈顿计划投资20亿美元的1/4。在研制期间,布鲁克斯率领着2000名程序员夜以继日地工作,单单360操作系统的开发就用了5000个人年。因此,当1964年4月7日,在IBM公司纪念其成立50周年的庆祝大会上宣布360系列计算机的时候,小沃森完全有理由声称“这是公司历史上宣布的最重要的产品”。确实,IBM/360以其通用化、系列化和标准化的特点,对全世界计算机产业的发展产生了如此深远的影响,以致被认为是划时代的杰作。而360的推出,也使IBM在短短两年时间内,即到 1966年,其资本就增加到45亿美元,职工总数净增6万,达到19万,成为名副其实的“蓝色巨人”。到60年代末,360系列机的市场占有率达到 15%,到70年代中期,超过了50%。各计算机生产厂商纷纷以360为榜样,推出各自的系列机,有的则直接采用360的操作系统,比如著名的 Amdahl公司的所谓“插接兼容式”计算机(Plug Compatible Computer)就是这样。为此,伊万斯和布鲁克斯两人常常被并称为“IBM/360之父”。

当然,IBM/360到今天早已是“昨日黄花”了。IBM公司在70年代就推出了370系列替代360,以继续保持其技术上的优势。我们之所以用了一定篇幅介绍360的故事,是因为其中不乏让我们的企业家、科学家和工程技术人员深思的一些问题。IBM/360的特点我们只简要介绍如下:它是集成电路的计算机,体系结构既适于事务处理,又便于科学计算;系列中各机型(规模由小到大,功能从弱到强,包括20、30、40、50、65、75等6个型号,后来扩充了25、85、91、195等型号)具有兼容性;有标准的输入输出接口和通用的输入输出设备,它们与中央处理器相对独立;软件既有兼容性又有可扩充性,从而可最大限度地保护用户的软件投资。这些特征大多都成为以后计算机设计与开发所遵循的基本原则。

360成功以后,布鲁克斯离开IBM回到其故乡,为北卡大学(UNC)创建了计算机科学系,担任该系系主任长达20年(1964~1984年)。卸任以后仍在该系任教至今,因此他培养的学生很多,可谓“桃李满天下”。除了教学以外,他还致力于发展美国的计算机技术和计算机在国防等方面的应用,有许多社会兼职。1966~1970年,他是ACM全国委员会的委员;1973~1975年出任ACM体系结构委员会(所谓SIGCA)的主席;1977~1980年布鲁克斯在美国国家研究院计算机科学技术部任职;1983~1984年他是美国国防科学委员会人工智能攻关领导小组的成员,1986~1987年是上述委员会另一个攻关领导小组“计算机模拟和训练”的成员;1985~1987年他担任军用软件攻关小组组长。他的研究领域除了计算机体系结构、机器语言设计、软件工程、大型项目管理以外,还包括动态体系结构的可视化(如“走查”Walkthrough)、人机接口、交互计算机图形学等等,十分广泛。例如关于虚拟现实,涉及布鲁克斯曾参与领导攻关的计算机模拟和训练,他十分重视,1992年3月由美国国家自然科学基金会NSF主持的虚拟现实研讨会,就是由布鲁克斯等人倡议并在北卡大学召开的,这次会议对VR进行了定义并就其研究方向提出了详细建议,奠定了VR作为独立研究方向的地位。布鲁克斯在筹备及组织此次会议上做出了重要贡献。1987年布鲁克斯当选为美国工程院院士,他同时也是英国皇家学会和荷兰皇家科学与艺术院的外籍院士。

布鲁克斯的著作不多,但影响都很大。1963年他和依费逊(Kenneth Iverson, APL发明人,1979年图灵奖获得者)合著了《自动数据处理》(Automatic Data Processing,Wiley)一书,这是该领域中最早的专著之一。1969年此书再版时有2个版本,其中一个是专门论述在IBM/360上的数据处理(书名为Automatic Data Processing,System/360Edition)。1975年,他把他历年来所写的有关软件工程和项目管理方面的文章汇集成书,书名为《人月神话》(The Mythical Man-Month: Essay on Software Engineering,Addison Wesley)。由于本书是他领导IBM/360软件开发经验的结晶,内容丰富而生动,成为软件工程方面的经典之作,出版20年之后,1995年又再版了一次。最近的一本专著是他与荷兰特文德理工大学(Twente Technical University,位于荷兰与德国接壤处的恩斯赫法)的勃芬夫教授(G. A. Blaauw)合著的《计算机体系结构:概念与发展》(Computer Architecture: Concept and Evolution,Addison Wesley, 1997)。勃芬夫是布鲁克斯在哈佛时的同学,后来又在IBM共事多年,曾一起开发过3个型号的计算机,这本书实际上是对计算机体系结构半个多世纪来发展变化的一个全面的回顾和总结。作者在书中风趣地把整个计算机家族叫做“计算机动物园”(Computer Zoo),对其中的主要成员逐一作了剖析。除了上述学术性著作外,1995年,他与苏泽兰特(I.E. Sutherland,“计算机图形学之父”,1988年图灵奖获得者)等还合编了一本书,书名是《Evolving the High Performance Computing and Communications Initiative to Support the National Information Infrastructure》,由National Academy Pr.出版,论述了有关高性能计算机计划及信息基础设施(也就是所谓“信息高速公路”)建设的一系列问题。

在授予图灵奖之前,ACM在1987年曾授予布鲁克斯“杰出服务奖”(Distinguished Service Award),1995年曾授予他以纽维尔(A. Newell, 1975年图灵奖获得者,1992年去世)命名的Newell奖。加上这次的图灵奖,布鲁克斯成为继克努特(D.E. Knuth, 1974年图灵奖获得者)之后的第二位同时拥有ACM三个奖项的计算机科学家。IEEE也先后向布鲁克斯颁发三个奖项,即McDowell奖(1970 年),计算机先驱奖(1982年)、冯・诺伊曼奖(1993年)。AFIPS在1989年授予布鲁克斯Harry Goode奖。数据处理管理协会DPMA1970年授予他“计算机科学”奖,并命名他为该年度的风云人物。1985年布鲁克斯因在开发IBM/360上的杰出贡献而荣获全国技术奖章(National Medal of Technology),同时获此殊荣的还有伊万斯和IBM的另一位功臣布洛克(Erich Bloch)。物理学界的富兰克林学会(Franklin Institute)也曾授予布鲁克斯Bower奖。
 
2004 Vinton G. Cerf (ZT)用TCP/IP吧?

Citation
For pioneering work on internetworking, including the design and implementation of the Internet's basic communications protocols, TCP/IP, and for inspired leadership in networking.

-------------------------------------------------------------------------
TCP/IP协议发明人G-Cerf:我为何放弃专利

  如果你是一个IT人,你可以不知道Vinton G. Cerf博士,但你不可能不知道TCP/IP,如果你不是一个IT人,你可以不知道TCP/IP,但你不可能不知道互联网,如果从1973年起, Vinton G. Cerf和他的伙伴开始将TCP/IP申请为专利的话,这个世界上的首富还会是比尔.盖茨吗?"全世界已经有超过10亿人在使用互联网." Vinton G. Cerf说,"坦率说,三十多年前研究TCP/IP的时候,我们没有想到这项技术会得到如此广泛的运用."

  Vinton G. Cerf就坐在眼前。

  这位被称为“互联网之父”的62岁的美国人,满头白发也掩盖不了他的活力与英俊。在谈话时,喜欢眯着浅灰色的眼睛看着你,显得非常专注;他喜爱做手势,语速快而具有感染力.“申请专利从实际的角度是行不通的,如果新技术不是无偿和免费的话,人们就会远离我们而去。” Vinton G. Cerf坚持将今天互联网成功的原因之一归结于他和Robert E. Kahn没有申请专利,把TCP/IP视为私有财产。

  1973年,Vinton G. Cerf和Robert E. Kahn在设计互联网的时候,做出一项重要决定,一定要让电脑和电脑之间的沟通敞开和透明;1975年,开始布设互联网的时候,两人一致决定要把这个礼物贡献给人们,让大家自由的分享。

  尽管当时世界上正处在冷战的高峰期,但值得庆幸的是,与Vinton G. Cerf和Robert E. Kahn合作的美国国防部并没有限制他们和其他地区分享技术。而他们也花了整整十年的时间推广这项新技术,用各种方式说服人们去尝试使用它.“互联网从诞生到现在已经35年了,巨大的变化在于,我们将几十年前的想法在不断的加以扩大,并广泛地去应用它。” Vinton G. Cerf说.作为美国MCI公司(世界上最早推动互联网商用的美国通讯公司,98年购买世通公司)主管技术战略的副总裁,Vinton G. Cerf说他更看重自己的科学研究工作。

  他说:“首先,我是一个科学家。” Vinton G. Cerf极度珍惜这个称号。当记者提到他所获得的科学界的一些荣誉时,Vinton G. Cerf甚至兴奋地展示他别在胸前的那枚红色的小勋章。那是1997年12月,克林顿总统为表彰Vinton G. Cerf和Robert E. Kahn为互联网的建立和发展所做的贡献而给他俩都颁发的美国国家技术勋章。在各种重要场合,他都会佩带它。

  “互联网一直面临斗争和挑战”

  Vinton G. Cerf说:“互联网一直面临斗争和挑战。”但他坚信,任何斗争和挑战都是能量累积和释放的一个过程。
  他说:“我们一直在克服这样或那样的障碍,好象在翻山越岭一样,爬到顶,然后落下来,再释放能量。”

  1968年,已经出现了一排人共享一台计算机。

  发展到1973年,美国计算机互相联系的网络有三个,第一个是美国研究用的网络,就是美国国防部用以联系美国有关研究机构的网络。第二个是增阻无线电实施移动通讯功能的网络。第三个是大西洋网络,用以美国和大西洋的联系。而Vinton G. Cerf和Robert E. Kahn从事互联网研究的初衷是将三个网合并。从73年到83年整整十年间,互联网并未得到大规模的使用;83年到93年是网络大爆炸过程,十年间用户翻了一倍。Vinton G. Cerf认为,一方面是,MCI公司开始起了推动作用,86年开始推出了光纤网络通讯;更重要的一方面是,从89年开始,美国允许用于高端研究的技术应用于商业用途。

  但是,“推广中各种斗争一直不断。” Vinton G. Cerf说。首先,在TCP/IP技术之前,人们已经有了互联技术(ARPA),尽管它不足以支持10万台计算机的互联,但使用老的ARPA技术的人必然会抵抗TCP/IP技术。Vinton G. Cerf和他的伙伴们用尽各种方法说服使用老技术的人们来尝试接受新技术。其次,和标准化组织ISO进行了长期的斗争与交涉。一开始标准化组织并没有接受 TCP/IP技术,直到78年,才得到了标准化认可,其实,当时标准化组织也推出了一套开放式互联的架构。从83年到93年,Vinton G. Cerf和他的伙伴们,都在跟想使用标准化组织推出的互联架构的人做斗争。

  “在我们看来,这套开放式互联架构只是一大堆文件。” Vinton G. Cerf说,“在使用的过程中,是不可行的。没有实际的应用,市场也并未形成。”再者,层出不穷的新技术号称要取代TCP/IP,也不断有新的传输技术声称要取代互联网络传输技术。“但最终并没有实现。” Vinton G. Cerf说,“我们在发明和设计TCP/IP时,做得非常仔细。它可以架构在一些新技术上,例如ATM、异步传输之上,这样既可保住我们的体系,又可以从新技术当中吸取新优势,使得整个体系不断地完善。”那么,怎样才能使得这些新技术实现可持续性发展呢?Vinton G. Cerf认为,关键是要建立一种学术界、应用界、政府彼此合作的一种模式,互相支持。只有借助三者的帮助,才能使得新技术在发展的过程中不断地更新。事实上,目前对互联网功能关注热点是承载语音通讯,但在互联网上进行语音传输服务面临两大新问题:一是政府监管层面的挑战,二是经济利益层面的挑战。“只有克服这些新挑战后,才能通过互联网提供各种形式的通信服务,把互联网带入下一个新阶段。” Vinton G. Cerf说。而随着互联网的应用越来越广泛与普及,人们对其的依赖程度也越来越大。“这意味着我们应该在两个方面做得更好,一个是网络的安全,再一个是网络的可靠性。” Vinton G. Cerf说,“安全性与可靠性是迈向未来互联网最基本的两个门槛,否则这个架构将无法存活。”
  Vinton G. Cerf认为,互联网的能否进一步广泛运营,也取决于政府的策略与政策是否逐步细致与完善。比如说如果网上有批判的话,该由什么机构解决;在商业交易方面,如果双方产生了意见上纠纷的话,究竟谁来解决;还有比如说网上如果有金融方面交易的话,是不是应该收税,税应该付给谁。

  “我看好IPv6在中国的发展”

  “中国美丽神秘,令人感觉心旷神怡。” Vinton G. Cerf说,从1997年起,他五次来到中国,七年中,他亲身感受到了IT业应用在中国的迅猛发展。“中国已经成为世界互联网领域中一个非常重要的角色。”在北京和上海的饭店中,Vinton G. Cerf随时可以享受到宽带上网所带来的便捷;而上海的摩天大楼和摩肩接踵的行人,更让Vinton G. Cerf感受到整个商业环境的蓬勃生机。

  “我认为中国应该尝试使用IPv6。” Vinton G. Cerf说。“而且,我看好IPv6在中国的发展。”一方面,中国是世界上使用互联网人数最多的国家之一,而潜在使用网络的人数将会更多。“中国的人口如此众多,如果每个中国人都给自己申请一个域名,三分之二的域名将被中国人占掉。” Vinton G. Cerf说。另一方面,中国比世界上任何国家和地区对于新技术、新想法的开创和使用有着更加浓厚的兴趣,而中国现在已经成为了世界上最主要的互联网制造基地。“例如我任董事的一家互联网公司就把所有的制造业务都交给了中国,在中国生产用于光纤网络发展的产品。” 更重要的是,2004年中国政府启动了下一代网络示范工程,将迅速推进下一代互联网的进程。而无论NGN,还是NGI都是基于IP。因此9月3日中国 CNGI正式进入到了实施阶段,标志着大规模地促进IPv6进行应用,使IPv6商用具体化将成为可能。

  Vinton G. Cerf认为,IPv6使得我们在互联网上加载大量的东西,开拓更多的应用机会。机会一方面存在于小的电子设备上,另一方面是通过互联网管理和控制这种设备。“在未来,语音和视频传输将成为一种非常普通的功能组成部分,影响到绝大多数电信公司的运营模式。” vinton G. Cerf说,“但不普通的是它的传输工具,它使人们彼此互联。” “中国绝对有机会成为领先者,领跑者。” Vinton G. Cerf说。他认为,开新路是对IPv6应用的最好描述,比如小的设备,手机、PDA等。在这一点上,中国、日本、美国是站在同一起跑线上,而且中国的新用户非常多,规模化不会成为问题。另外,除了新的尝试,IPv6还可以在旧的应用模式上持续。比如e-mail,可以继续应用IPv6。

  不过,Vinton G. Cerf提醒中国,在真正进行市场推广过程中,IPv6也会遇到好多的问题,各个运营商之间的路由器是不同的,便会存在的对于路由器的标准化测试问题。 “比如说华为,它能否和思科之间实现互通?” Vinton G. Cerf若有所思地望着记者。
 
电脑间的谈判(ZT)

人类的不同集团为了自身的利益要进行各种谈判。谈判之前,唇枪舌剑;

  谈判之中,剑拔弩张;谈判之后,握手言和。因为大家总要共同生存下去,所以最终的结果往往是各退一步,然后达成“协议”。

  电脑之间也要谈判。比如,美国陆军要实现电脑化管理,进行了招标,结果DEC公司中了标,陆军就买了大量DEC生产的电脑;随后,空军招标,结果 IBM公司中标,空军使用的就是IBM电脑;海军当然也要招标,这次是Honewell中了标,海军就得用Honewell电脑。在60-70年代,还没有我们现在的PC(个人电脑)概念,大家用的都是大型机、中型机或者小型机等等。谁也不能说这些电脑有问题,他们在各自的系统里都运行得很好。可是有一天,国防部要想查看他们的系统,这才发现几个军种的电脑之间却不能很好地连接起来。

  尽管“所有电脑生来都是平等的”,但是这些电脑却不是生来就能相连的。

  究其原因,如果不是最初的设计者疏忽的话,更可能的还是生产者被各自狭隘的商业利益给束缚住了。

  在ARPANET产生之初,大部分电脑互相之间是不兼容的。在一台电脑上完成的工作,别想拿到另一台电脑上去用。要是想让硬件和软件都不一样的电脑联网,就更不可能。

  为了让这些“生来平等”的电脑之间能够分享成果,分享资源,就得在这些系统的标准之上,建立一种共同的大家都必须遵守的标准。这样才能让不同的电脑按照一定的规则进行谈判,并且在谈判之后能够“握手”言和。

  在确定今天互联网各个电脑之间的“谈判规则”的人当中,最重要的就是瑟夫。正是因为他的努力,才使我们今天各种不同的电脑之间能够互联。瑟夫本人也因此获得了“互联网之父”的称号。

  文滕・瑟夫和鲍伯・卡恩

  文滕・瑟夫(Vinton G.Cerf)小时候是个坚强而热情的孩子,高中加入了后备军官训练队。和许许多多爱出风头的小孩一样,瑟夫从小就喜欢标新立异,引起别人注意。在学校的时候,作为后备军官训练队的队员,他却经常不穿制服,而是穿着夹克,系一条领带,还提着一个不小的手提箱。这种装束虽然有时会受到某些人的白眼,但只要能换来女孩子们注意还是值得的。

  同时,瑟夫也是个极爱读书的人。在化学课上,他尽显自己的才华。然而对他来说,真正情有独衷的还是数学。

  那时,瑟夫的同学和朋友中有一个叫Steve Crocker的。当瑟夫还是中学生的时候,就被允许使用加州大学洛山矶分校的电脑。他和Steve经常在周末到那里去玩电脑。有一个星期天,他们照例来到电脑室,却发现门被上了锁。正当Steve打算回家的时候,瑟夫却让他蹲下,踩着他的肩膀从窗子爬了进去。从此,他们就再也不愁电脑室的门被锁上的问题了。

  瑟夫有一个好父亲。高中毕业后,父亲的公司给了他4年的奖学金到斯坦福大学去读书。既然最喜欢数学,他就选择了数学作为自己的专业。

  然而没过多久他就发现,最有魅力的还是电脑。

  “为电脑编程序是个非常激动人心的事。你建立一个自己的宇宙,而这个宇宙是由你来管理的。只要把程序编好,就可以让电脑做任何事情。这简直就象小孩堆沙子玩的沙箱,里面的每一粒沙子都在你的控制之下。”(《留住魔迹的地方》第139页)

  想当领袖的欲望可以在编写程序的过程中虚拟地实现,这绝对不止是瑟夫一个人爱上电脑的原因。

  1965年,瑟夫从斯坦福大学毕业,到洛山矶的一家IBM公司做系统工程师。而他的那位朋友Steve正在加州大学洛山矶分校读电脑专业的博士学位。当时,全美国没有几所大学有电脑方面的博士课程,最早提出“包交换”理论的Paul Baran就曾经在这里和Steve的论文导师Jerry Estrin一起工作过。

  由于天生听力不佳,瑟夫对人们通过听觉进行的交流有着独到的见解。他1966年结婚,而新娘的听力问题竟然比他更严重。据新娘介绍,在他们第一次午餐的时候,瑟夫谈起电脑就手舞足蹈,这种兴奋与后来一起看画展时找不到感觉恰好形成鲜明的对比。

  在洛山矶工作没多久,瑟夫就觉得自己的知识不够用,于是也到加州大学洛山矶分校攻读博士。当时,Estrin有一个DARPA的电脑研究课题,而这个课题同时也就成了瑟夫博士论文的题目。

  1968年秋天,DARPA在洛山矶分校成立了网络评测中心,原来Estrin的课题被转到了由Kleinrock领导的评测中心。这个中心每年的经费达20万美元,有40多个学生为中心工作。在这些学生中,理所当然地就有瑟夫。

  那时候,洛山矶分校的电脑系有一台Sigma 7电脑。尽管学校还有另外3台IBM 7094大型机,这些大型机比Sigma 7的功能强得多,但是指定研究生们用的就是Sigma 7。也许正因为此,有人把这台Sigma 7称作“小狗”。然而,这个速度慢,性能不那么可靠的“小狗”毕竟是给学生用的。正如后来瑟夫所说的那样,“无论如何,这是我们的小狗。”

  的确,后来(1969年秋),ARPANET的第一台电脑就是这条“小狗”。而大家的工作,就是在这台“小狗”和BBN公司提供的“接口信号处理机”之间,建立一种联系。

  瑟夫曾写过一篇著名的文章:“互联网是如何形成的”(http://www.u-aizu.ac.jp/~s102106/history/node2.html),对当时的情况作了非常生动的描写。

  在当时,学校里有一批年轻人对“网络评测计划感兴趣。除了瑟夫之外,还有两位年轻人也非常出色。一位是Michael Wingfield,是他在Sigma 7电脑上建立了第一个与IMP的接口。而David Crocker则是最早为ARPANET和互联网建立电子邮件标准的人。当然,也少不了在学校电脑中心工作的人参加,他的名字是:Robert Braden。

  此后不久,BBN公司的Bob Kahn(见右图)也来到加州大学洛杉机分校。是Kahn主持了后来对ARPANET的总体结构设计,为ARPANET的建成做出了巨大贡献。在那段难忘的时间里,通常是Kahn提出需要什么样的软件,而Vinton Cerf则通宵达旦地把那个软件给编出来。然后,他们又在一起测试这些软件,直到能够正常运行。

  这个Bob Kahn绝对是天才。他认准的事几乎没有不灵验的。比如,有的时候,大家认为某一种情况绝对不可能发生,而Bob Kahn偏认为一定会发生。结果还就是按Bob Kahn所说的那样发生了。时间一长,大家也就都信他的了。

  而Roberts则和Howard Frank一起在网络分析公司(Network AnalysisCorporation)设计和调试网络的拓扑结构和效率。

  就这样,由Kahn设计ARPANET的总体结构,由Roberts设计网络布局,由Kleinrock准备网络评测系统,ARPANET可以说是“万事具备,只欠东风”了。

  RFC:“征求意见稿”

  然而,事实上,开始的时候ARPANET的计划并不是一帆风顺的。有许多部门(比如AT&T)就认为这事根本就行不通。在搞电脑的这圈人中,也并不都接受这种计划。即使是提供资金的国防部高级研究计划处对此也没有成算。因此,他们一方面让实验公开进行而不予保密,另一方面还请了一批和这个计划没有任何功利关系的电脑方面权威来评估研究工作的进展。

  的确,参加研究的大多数都是一些还在读书的研究生,也许他们做梦也没有想到,正是他们的兴趣和爱好使他们加入了创造历史的行列。同时,由于他们都年轻,没有经验,也没有地位。因此,需要把自己的工作告诉别人,也需要听取别人的意见和建议。于是,他们发明了一种方式,把自己的想法和遇到的问题公开发表出来,引起大家讨论。1969年4月,当时还是研究生的Steve Crocker刊印出第一份著名的“征求意见稿”(RFC:Request ForComments),题目是“主机软件”。

  这份“征求意见稿”的意义极为重大,开了“互联网式的讨论”的先河。本来,互联网(尤其是开始的ARPANET)是军队的资金和学校的智慧相结合的产物。

  可是这种讨论既不是军队式的,也不是学院式的。美国大学的学术传统比较开放,通过刊印“征求意见稿”的方式把这种开放的传统带到了比较封闭的军队中来。

  所有人都可以看到“征求意见稿”,也都可以参加到讨论中去。而另一方面,美国大学的研究比较正统。有一套清规戒律。可是,由于这种刊印的方式不那么正式,内容也不那么正规,只是在“征求”,因此,也不完全象是学院式的讨论。

  而这种不那么正规的讨论也更加增添了开放的色彩。

  并且,这种方式还非常适合对问题的深入研究。每一份“征求意见稿”都会收到一些反馈回来的信息,如果反馈的意见足够多的话,又有可能产生新的“征求意见稿”。后来的许多与互联网有关的工作都继承了这样的方式。虽然第一份“征求意见稿”是印刷出来发给大家的,但是当ARPANET真正投入运行,人们可以方便地从网络上传输文件以后,这种方式更加受到大家的欢迎,也流传得更加广泛了。通过网络来传输“征求意见稿”,使得这种开放的讨论方式得到了更好的发挥。并且,由于这种开放性,也使互联网的影响更加扩大。

  这个刊印“征求意见稿”的传统一直坚持到现在,至今已发表了数千篇。几乎讨论过互联网中的所有问题和解决方案。我们通过这些文章就可以了解互联网技术的整个发展进程。而这些文章都可以从互联网上找到。我们甚至不必从互联网上把所有这些文章都取回来研究,哪怕是取回这些文章的目录,对方的服务器都会提出警告:取这个目录要花很长的时间,因为即使是目录也太长了!或许,我们不必做其它的研究,只要真正坐下来,好好读一读这些“征求意见稿”,就可以了解到美国人几十年来对互联网投入了多大的精力,做了多少工作。而且,要知道,其中的绝大多数文章都是在不计功利、不计报酬的情况下完成的。

  NCP:网络传输协议

  早在1965年,Larry Roberts和Thomas Merrill第一次将两种不同的电脑连接在一起之后,Merrill就把这时传送文件的方式称作“协议”(Protocol)。一个同事问他,为什么用“协议”这个词。他说,“我觉得这象是在搞外交。”

  正是在ARPANET的试运行过程中,才发现各个IMP连接的时候,需要考虑用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。否则这些IMP不会知道什么时候应该接收信号,什么时候结束。这也就是我们现在说的通信“协议”的概念。1970年12月,针对这一问题,由S.Crocker 领导的网络工作小组(NWG)着手制定最初的主机对主机的通信协议。

  这个协议被称作“网络控制协议(NCP)。

  由于有了网络控制协议,ARPANET的运行就有了标准,网络的用户也就可以根据各自的需要,开发自己的应用软件了。

  从那时起,对互联网的研究一直遵循着理论与实践相结合的方式。既研究网络的基础原理,同时也开发对网络的应用。这个至关重要的传统一直保持到现在。

  也正因为这两方面的互相促进,使互联网既没有仅仅成为科学家实验室中的理论模型而不得推广,同时又使互联网的应用始终能够得到正确的理论指导。

  既然ARPANET工作良好,联入ARPANET的电脑也就日益多起来。也就是在这个时候,怎样让不同类型的电脑联结起来的问题就显得突出起来。换句话说,如何让这几十台结构不同的电脑按照共同的方式、共同的标准来联接,成了ARPANET的关键问题。实际上,这也是后来的互联网的关键问题。没有一个共同的标准,怎样才能“互联”?如果不能互联,哪来的互联网?

  可是,要建立这样一种共同的标准有多么不容易!要知道,这些电脑本来就被设计成不一样。我们甚至不必去理解各种大型机、小型机的运算原理,也不必去理解一个大型的网络是如何连接,只要看一看今天苹果电脑和IBM电脑之间的不兼容,看看不同软件之间的不兼容,看看甚至微软公司自己生产的同一种软件的各个版本之间的不兼容,就可以想象要把各种不同类型、不同型号的电脑和网络连在一起有多么困难。

  自从1972年10月份的国际电脑通信大会结束后,大家都在为如何设立这个“共同的标准”而开动脑筋。“信包交换”的理论为网络之间的联结方式提供了理论的基础,可是怎样让那些不同型号、甚至不同操作系统的电脑和网络按照同一个标准、同一种方式联结起来,让每一个电脑用户可以与网络上的任何电脑通信,并且还不必知道对方的电脑和操作系统是什么,更不用知道背后的技术原理,就不是一件容易的事。

  如前所述,1970年12月,S.Crocker在加州大学洛杉机分校领导的网络工作小组(NWG)曾经制定出“网络控制协议”(NCP)。他也正是一年多前写出第一个具有历史意义的“征求意见与建议(RFC)的人。开始,这个协议还是作为信包交换程序的一部分来设计的,可是他们很快就意识到关系重大,不如把这个协议独立出来为好。还给起了一个名字,叫做“网络之间”(Internetting)的程序。

  那个时候,天才的Kahn也为临时需要而开发过局部使用的“网络控制协议”。

  既然是局部使用,就不必考虑不同电脑、不同操作系统之间的兼容问题,因此也就简单的多。

  无论如何,“网络控制协议”不过是一台主机直接对另一台主机的通信协议,实质上是一个设备驱动程序。要想真正做到将许多不同的电脑、不同的操作系统连接起来,还有许多事情要做。首先得给每一台电脑分配一个唯一的名字,这样别的电脑才能把这台电脑给“认”出来。用专业一点的话说,就是要给网络上的每一台电脑定义一个“地址”。

  而且,Crocker和Kahn搞出来的“网络控制协议”也都没有纠错功能。要是在传输中出现了错误,他们的协议就规定网络停止传输数据。这次传输也就失败了。

  一开始的时候,那些“接口信号处理机”被用在同样的网络条件下,相互之间的连接也就相对稳定,因此没有必要涉及控制传输错误的问题,也很难想到这个问题。

  可是,随着联入ARPANET的电脑数量的增加,就需要有一种新的协议来管理网络之间的连接。“网络控制协议”(NCP)作为一个设备驱动程序来驱动“接口信件处理器”还可以;可是要想真正能够管理网络通信,还需要更加完善的协议。

  Kahn首先为设计这种新的网络通信协议,确定了四项基本原则(http://www.isoc.org/internet-history/):

  *“每一个独立的网络必须按自己的标准建立起来,当这个网络和互联网连接的时候,不需要在其内部做任何改动。

  *应该在最佳的状态下完成通信。如果一个信包没有到达目的地,最初发出信包的节点将很快再次发出该信包。

  *在网络之间进行互相连接的时候,将使用“黑匣子”。这里所谓的“黑匣子”后来被称为“网关”和“路由器”。将不保留通过网关的每一个信包的任何信息。

  由此,使网关变得简单,即使出现各种失误也避免在网关进行复杂的改编和恢复工作。

  *整个互联网不需要在操作的层面上有任何总体控制。”

  Kahn以前在BBN公司工作的时候就一直研究具有通信功能的操作系统原理,现在,这些研究正好用得上。BBN公司在1972年就把他的这些想法刊登在BBN公司的内部读物上,题目是:“操作系统的通信原理”(R.Kahn“Communications Principles for OperatingSystems”.InternalBBN memorandum,Jan.1972)。这些思想显然对最初互联网的总体设计和建设起了决定性的作用。


  但是,理论上认识到建立一种共同的协议的重要性是一回事,要真正建立具体的这样一个协议又是另一回事。首先,Kahn在自己研究的基础上,认识到只有深入理解各种操作系统的细节,才可能将建立起一个对各种操作系统普遍适用协议。这已经不是他一个人所能完成的了。从1973年的春天开始,Kahn请 Vinton Cerf和他一起考虑这个协议的各个细节。

  TCP/IP:传输控制协议和互联网协议

  Vinton Cerf不仅参与过“网络通信协议”(NCP)的设计,而且对现有的各种操作系统的接口也非常了解。所以,Kahn把自己关于建立开放性网络的指导思想和Vint Cerf在NCP方面的经验结合起来,一起为ARPANET开发新的协议。

  而他们这次合作的结果,就是我们现在还一直在使用的“传输控制协议”(TCP)和“互联网协议”(IP)。

  从1972年11月开始,Vinton Cerf也获得了斯坦福大学电脑科学与电子工程的助教职位。这无疑是一个很好的机会。Vinton Cerf在那里组织了一系列的专题讨论。大家通过讨论,对建立一种新协议有了更加深刻的认识。当时参加这些专题讨论的学生后来有不少都成了专家。其中, Richard Karp写出了第一份TCP原代码;Jim Mathis也研究互联网的协议,后来为苹果电脑写出了专为苹果电脑用的传输控制协议:MacTCP;Derryl Rubin后来成了微软公司的副总裁;Ron Crane当时为Vinton Cerf管理斯坦福实验室的硬件,后来也到苹果电脑公司担任了一个重要职位。

  就这样,Vinton Cerf在斯坦福大学的实验室里完成了对TCP协议的初始设计工作。

  1973年9月,Vinton Cerf以主席的身份,在Sussex大学组织召开了“国际网络工作小组”(INWG)特别会议。在这次会议上,Vinton Cerf与Kahn提交了第一份关于TCP协议的草稿。这篇草稿以论文的形式于1974年5月在电气、电子工程研究院(IEEE)刊印出来,题目是:“分组网络互联的一个协议”(V.G.Cerf and R.E.Kahn,“A protocol forpacket network interconnection”IEEE Trans.Comm.Tech.,vol.COM-22,V 5,第627-641页,1974年5月)。同年12月,Vinton Cerf和Kahn关于第一份TCP协议的详细说明作为“互联网实验报告”正式发表。

  这时,ARPANET上已经连接了40个节点(NODES),一共45个网站。两年以前的1972年,在ARPANET上每天的数据流通量大约是1百万个信包,而这时已经达到每天二百九十万个信包。并且,还有一个节点通过卫星电路从加利弗尼亚州连到了夏威夷。挪威和英国也通过低速电缆连到了 ARPANET上。

  在Winton Cerf和Kahn当时提交的报告中,还没有将“传输控制协议”(TCP)

  和“互联网协议”(IP)区分开来。所以他讨论的只是一个“传输控制协议”(TCP),而不是TCP/IP协议。该协议负责在互联网上传输和转发信包。Kahn开始的时候认为可以通过“传输控制协议”直接在ARPANET上传送信包。然而,这实际上只是一个“虚拟线路”模式(virtual circuit),而不是真正的“包交换”模式。这种模式在通常的远距离联入和传输文件的时候没有什么问题,但是在后来一些特殊的实验中证明,使用这种协议有时丢失信包的情况没有得到纠正。

  因此,他们认识到,应该建立两个不同的协议。一个是“传输控制协议”(TCP),另一个则是“互联网协议”(IP)。这也就是现在通常所说的:“TCP/IP协议”。

  实际上,这两个协议的任务是不同的。

  就象电影院散场的时候拥挤,而平常的时候则人少,网络中的通信量也会时大时小。通信量过大的时候,就会造成“溢出”,信号就无法传到目的地了。因此,在数据传输的过程中需要有一种共同的标准来检测网络传输中的差错。如果发现问题,就发出信号,要求重新传输,直到所有数据能够安全传输到目的地。

  这个协议就叫“传输控制协议”(TCP)。

  同时,就象寄信要有地址,打电话要有电话号码一样,网络中的每一台电脑也必须有自己的网络地址,否则别的电脑就找不到它。虽然在互联网之前,已经有各种网络出现,我们现在各个单位的内部也有不同标准、不同方式的局域网。

  要使所有电脑都能相连,就得有建立在各种局域网的地址标准之上的各个网络之间的联络标准。这就是所谓的互联网协议(IP)。

  互联网协议的任务是给互联网中的每一台电脑规定一个地址,这样,才可能在网络的众多电脑中对“这一个”电脑定位,其它电脑才可能对它进行访问。我们通常把由互联网协议规定的网络地址称为“IP地址”。

  如果说在互联网中多少还有一点管理,多少还有一点权威的话,也许这种管理就仅仅体现在对IP地址的管理上了。电脑不能象人那样,想起什么名字就起什么名字。在社会生活中,同名同姓至多引起一些笑话。而在网络中,如果不同的两台电脑有相同的地址,就无法给他们送信了。所以总要有一个机构给网络中的电脑起名──规定一个IP地址。

  当时的ARPANET还是一个相对来说比较小的美国国内的网络。本来只要用比较小的数字就可以定义了。值得庆幸的是,定义IP地址的人不仅“胸怀美国”,而且“放眼世界”,从一开始就把IP地址设计成32位的。前8位用来定义所在的网络,后24位则用来定义该主机在当地网络中的地址。

  当时,美国国防部一共签了三个合同来完成TCP/IP协议。一个合同给了斯坦福大学由Vinton Cerf领导的小组;另一个给了BBN公司由Ray Tomlinson领导的小组;还有一个则给了加州大学洛杉机分校PeterKirstein的小组。Vinton Cerf的小组捷足先登,首先制定出了经过详细定义的TCP/IP协议。经过不到一年的时间,这三个小组都独立地完成了对各自的TCP/IP协议的设计。

  1974年5月,ARPANET由美国国防高级研究计划处转交给国防通信处(DCA:DefenceCommunication Agency),也就是现在的国防信息系统处(DISA:Defence InformationSystem Agency),正式运行起来。

  DARPA从一开始就没有把ARPANET当作是唯一的目的,实际上,ARPANET只是长期计划中的一个部分。这个计划的开始是要建立三种不同的网络:一个是ARPANET,另一个是无线电信包网(Packet Radio),还有一个则是卫星信包网(Packet Satellite)。最后的任务是将这三个网络连接起来。

  当三个网络都已经相对成熟的时候,就可以进行网络之间的互联实验了。到1977年的7月,ARPANET上已经有了111台电脑,DARPA组织了第一次三个网络之间的互联。虽然这次实验已经超出了ARPANET,但仍然是由美国国防部提供资金。信包首先通过点对点的卫星网络跨越了大西洋到达挪威,又从挪威经过陆地电缆到达伦敦;然后再通过大西洋信包卫星网络(SATNET),经过SCPC系统,分别由Etam、西弗吉尼亚、Goonhilly DownsEngland、Tanum和瑞士的地面站传送再回到美国。全部路程要经过9万4千英里,比单纯在ARPANET上的800英里要长得多。

  令人不可思议的是,经过了9万4千英里的传输,竟然没有丢失一个数据位!

  要知道,在电脑上,每一个英文字母占一个字节(byte),而每一个字节通常是由7个数据位(bit,也就是“比特”)加上一个校验位构成的。这么远的距离能够如此可靠地传输数据,由此也证明了TCP/IP协议的成功。

  从1978年到1979年,军队系统对互联网技术表现出极大的兴趣。通过无线电信包系统和卫星信包系统完成的TCP/IP协议也日趋成熟。这需要进一步加强管理。

  于是,Vinton Cerf为国防高级研究计划处组建了“互联网设置管理处”(ICCB),帮助他们规划和执行TCP/IP协议的最新进展。这个机构由麻省理工学院的David Clark担任主席,其中有许多顶尖的研究专家,为TCP/IP的发展做出了贡献。

  后来,Barry Leiner又把这个机构改为互联网活动处(IAB),这也就是现在互联网协会的互联网计划处的前身。

  那时还不象现在。开始的时候,所谓电脑都是一些巨大的功能极强的计算机器。而设计TCP/IP协议的本来目的也是为比较大型的分时系统使用的。可是,在电脑网络发生一场革命的同时,电脑本身的革命也悄悄开始了。自从乔布斯在父亲的旧车库里制作出第一台电脑个人电脑以后,人们对“电脑”的理解在不断发生变化。随着“个人电脑”概念的深入人心,各种功能的电脑走进了办公室和家庭之中。这真是“旧时王谢堂前燕,飞入寻常百姓家。”

  因此,需要设计一种更加小型的、不那么复杂的“传输控制协议”来为个人电脑服务。麻省理工学院的David Clark带领他的研究小组首先论证了建立一种相对简单的“传输控制协议”的可能性。他们先为当时的一种个人工作站设计了“传输控制协议”,随后又为 IBM的个人电脑设计“传输控制协议”。“麻雀虽小,五脏俱全”。经过时间的证明,这些协议虽然简单,但仍然能够很好地工作,并且能够与其它大型的“传输控制协议”很好地配合。

  “传输控制协议”不仅可以用于大型电脑和网络系统,而且也完全适用于个人电脑。这对广大的个人电脑用户来说,无疑是一个喜讯。因为,从此以后,个人工作站、个人电脑不再受到歧视,也可以象大型电脑一样加入到互联网中。这是我们大家现在从家里就可以通过电话线联入互联网的理论基础。 { 枫下论坛 rolia.net/forum }

  随着80年代个人电脑开始大量进入家庭,互联网的用户迅速增长起来,TCP/IP协议也开始面临一系列新的问题。一个是如何使一般用户使用互联网地址(IP)

  的问题;一个是应用软件,尤其是主机软件的问题;还有一个就是如何从开始的“网络控制协议”(NCP)转换到“传输控制协议”和“互联网协议”(TCP/IP)

  的问题。

  首先是定义地址的方式问题。正如前面谈到过的,各种电脑是通过TCP/IP协议联入互联网的。“互联网协议”的标准格式由4个部分组成,每个部分至多有3个数字。因此,每部分的总数不可能超过256个。比如,中国邮电部的CHINANET在北京拨号入网服务器的IP地址就是: 202.96.0.133。这种地址分成不同的等级。

  B级地址由IP地址的前两个部分组成,规定了当前使用网络的管理机构,用B级地址一共可以定义64万个地址。而C级地址则由IP地址的后两个部分组成,是当前所使用的电脑在这个网络中的地址。其中,IP地址的第三部分规定了当前使用的网络的地址,而最后一部分则规定了当前使用的电脑的地址。

  域名当专家们津津乐道这些IP地址的时候,普通人却对此很难有什么感觉。大家记电话号码已经很不容易,要想记住许多这种数字式的IP地址几乎是不可能的事。

  即使对于专家来说,用数字来定义IP地址也不是一个应用上的好主意。

  我们日常使用的是语言,而语言是由具有含义的单字组成的。因此,除了机器能懂的数字以外,我们还需要有另一种定义地址的方式。这种方式不应该是数字式的,而应该由具有含义、容易记忆的字母组成。并且,这种字母的方式应该和数字的方式完全等值,并且可以互换。每一个数字式的IP地址都有一个相应的字母式的地址;反过来,通过一个字母式的地址也可以查到相应的数字式的IP地址。也许对与专家来说,互联网上每台电脑的名字是一串数字,但是,对于一般人来说,则应该是相对容易记忆的字符。

  我们应该感谢USC/ISI的Paul Mockapetris,是他发明了这样的一种转换系统,使我们可以在不知不觉中使用自己熟悉的语言,让电脑自己把这种语言转换成电脑能懂的数字式的IP 地址。这个系统被称作是“域名系统”(DNS:Domin Name System)。

  域名系统一般也是由不同的部分组成,而且不一定只是四个部分。每部分同样由“."(读做“dot”)隔开。比如,Chinanet的域名地址就是: ns.bta.net.cn,这是和202.96.0.133完全等值的。“牛津大学中国问题研究中心”的域名地址则是:cmcs.ox.ac.uk。这个地址也可以写成:centre-mordern-chinese-studies.oxford.ac.uk。

  由此可以很容易地看出,这些字母是有含义的。最后一位通常表示这个地址所归属的国家或机构。

  表示各种机构的地址名称通常有:

  org................组织

  mil................军队

  com............商业机构

  gov............政府部门

  edu............教育部门

  表示国家或地区的地址名称就很多了,比如:

  cn.................中国

  uk.................英国

  hk.................香港

  长痛不如短痛

  正是由于TCP/IP协议的出色表现,1980年,军队决定将TCP/IP协议作为军队推荐的协议来使用。不过,“上有政策,下有对策”,有人“推荐”是一回事,用不用则是另一回事。让人们改变过去的习惯去适应一种新的技术往往是困难的,仍然有一些单位继续使用NCP协议。

  幸好,国防部的官员也懂得“长痛不如短痛”的道理,既然TCP/IP协议与NCP协议相比有着明显的优越性,就应该果断地用TCP/IP来替换 NCP,拖的时间越长,问题也就越多。军队就应该有雷厉风行的作风。为此,在1982年的时候,军队终于做出决定:整个ARPANET上使用的系统都必须从网络控制协议(NCP)转换到TCP/IP协议上来。这个决定同时也是向人们表示将ARPANET的协议从NCP转换到TCP/IP的选择已经成为定局。

  即使作出了这样的决定,要让大家同时都使用TCP/IP,仍然不是一件容易的事。这需要小心、谨慎、仔细地完成转变工作。经过精心的策划,选择了双管齐下的方针。他们开了两组通道:一组通道继续使用NCP协议,另一组通道则使用TCP/IP协议。这样就有可能让ARPANET暂时关闭某一个通道而只允许使用另一个通道。既起到了警告的作用,又不至于突然强行中断而影响工作。年中的时候,ARPANET将所有NCP协议的通道关闭了一整天。使用 TCP/IP协议的单位当然没有问题,而继续使用NCP的单位则遭了殃,一下子收到了大量用户埋怨的信件。

  对于那些顽固不化的机构,暂停NCP被证明是一个好方法。当年秋天,ARPANET的NCP通道又被停了两天。这样,再有顽固的人,也很难坚持下去了。谁能受得了这种用用停停的局面呢?谁知道什么时候该连续停三天了呢?那些顽固坚持NCP的人,终于让自己的习惯服从了科学的选择。

  1983年的1月1日,被称为是互联网发展过程的一个“记念日”(flag-day)。

  因为,从这一天起,ARPANET永久性地停止使用“网络控制协议”,从此以后,在互联网上的所有主机之间有着共同的协议,这些主机的连接必须遵守同样的规则,这个协议或者说规则就是TCP/IP。

  我们在前面说过,互联网的理想,就是实现对所有电脑、对所有操作系统的“开放性”,使所有电脑都可以在互联网上共享资源。而这种理想的实现,在很大程度上应该归功于TCP/IP协议。正是由于有了这两个协议,才使互联网得到了如此巨大的发展,也正是这两个协议,使互联网上的通信得到了保证。

  1997年,美国授予当时发明和定义TCP/IP协议的Vinton G.Cerf和Robert E.Kahn“国家技术金奖”(http://www.sciam.com/0697issue/0697medal.html),无疑是对互联网的发展和作为互联网基础的TCP/IP协议的最佳褒奖。

  有了可靠的通信手段,当然是为了使用。然而,出乎美国国防高级研究计划处意料之外、同样也出乎设计互联网的那些电脑专家意料之外的是:在ARPANET上使用最为普遍,也最为有效的竟然是可以给私人之间通信的“E-mail”。
 
Berkeley Unix 二十年历史之回顾

[转者按]既然谈到了OS中的少林,AT&T的 UNIX,就得谈谈OS中的武当,柏克力的BSD

===========================================================================

早期历史

1973年11月,在Purdue大学召开的"操作系统原理研讨会"上,Ken Thompson 和Dennis Ritchie发表了第一篇关于Unix的论文。 当时California大学Berkeley分校的Bob Fabry教授也正好在会场上,他立刻对此发生了兴趣,并得到了一份操作系统的拷贝,准备在Berkeley分校进行实验。

当时,Berkeley仅有大型的计算机主机系统在做一些批处理工作。因此这项事业的第一个定单是得到一台PDP-11/45计算机,以运行当时的 Unix Version 4。 Berkeley的计算机系、数学系和统计系共同出资购买了这台PDP-11/45。在1974年元月份,第四版本(Version 4)的Unix 磁带交付学校使用,学校当时指定当时上研究生的Keith Standiford将这个操作系统安装到了这台机器上。

尽管身在Purdue的Ken Thompson没有参与在Berkeley安装这一操作系统,因为他要负责在其他地方的安装系统,但是在Berkeley安装的系统上出现了几次奇怪的系统崩溃,因此很快就需要像他这样富有经验的专家来帮助解决。当时Berkeley仅有一台300-波特率的声频耦合式的调制解调器,且没有自动应答功能,所以Thompson需要事先通过电话通知机房的 Standiford,让他将电话线插入调制解调器中。 通过这种方法,Thompson可以从新泽西州远程地对崩溃了的系统进行调试。

许多次系统崩溃的原因在于磁盘控制器不能可靠地执行叠加搜索,与通常的文档搜索不同,Berkeley 的PDP-11/45计算机是Thomspson所遇到的首批在同一个控制器上有两个磁盘的系统之一! Thompson的远程调试也是后来延续的Berkeley和Bell实验室之间合作的第一个例子,Bell实验室的研究人员乐意助人,他们同意将他们的工作成果与Berkeley进行分享,这极大地加快了Berkeley软件的改进工作。

尽管Unix很快就开始运行起来,而且很可靠,但Berkeley计算机系、数学系和统计系之间的冲突很快就导致了新的问题:数学系和统计系想运行DEC 的RSTS系统。经过多次讨论后,他们达成了妥协,每个系可以有每班8个小时的时间运行计算机系统,即Unix运行8个小时后,再运行16个小时的 RSTS。为促进公平性,运行时间段的切换每天进行,因此第一天Unix从上午8点运行到下午4点,然后是从第二天的下午4点到第二天的午夜,接着是第三天的凌晨到上午8点。 尽管这个时间表异乎寻常,但是学习操作系统课程的学生们更喜欢在Unix系统上做项目,而不是在批处理机上。

Eugene Wong教授和Michael Stonebraker教授都感到在批处理环境限制下的工作很别扭,因此他们的INGRES数据库项目成为第一组从批处理机移至Unix交互环境下开发的项目,但他们很快就发现了缺乏机器运行时间,而且在PDP-11/45上的需要在奇数小时才能进行工作的确让人忍受不了,因此在1974年的春天,他们购买了一台PDP-11/40以运行新的Unix Version 5。随着1974年秋天第一个INGRES分发版的发行,INGRES项目小组成为计算机系中第一个发行软件的小组,在随后的六年中,他们一共交付了几百份 INGRES磁带,大大地帮助了Berkeley在设计和建立真正系统领域树立起了良好的信誉。
尽管INGRES项目组后来不再使用PDP-11/45,但对使用机器的学生来讲,仍然存在运行机器时间的不足,为了弥补这种缺陷,Michael Stonebraker教授和Bob Fabry教授,从1974年6月开始着手为计算机系购买两台供教学使用的PDP-11/45。 1975年初,钱已到位,但几乎在同时,DEC发布了PDP-11/70,一种显得比PDP-11/45更高档的机器,因此原本计划在1975年秋天购买两台PDP-11/45的钱转而购买了一台PDP-11/70。 PDP-11/70交付学校使用时,碰巧Ken Thompson决定作一年的休假。California Berkely分校是Ken Thompson的母校,Ken Thompson决定去Berkely分校当访问教授。 后来Thompson 同Jeff Schriebman与Bob Kridle三人一道在新安装的PDP-11/70上合作开发了后来的Unix Version 6。

1975年的秋天,来了两位当时还不出名的研究生,他们是Bill Joy和Chuck Haley,两人立刻都对这一新的系统产生了兴趣,最初他们开始在一个Pascal系统上工作,该系统由Thompson在PDP-11/70机房调试时与机器集成在一起,他们扩展了并有效地改进了Pascal解释器,并使它成为学生们一个可选的一个编程系统,因为它具有极好的错误恢复机制和快速编译时间及运行时间(compile and execute time)。

随着Model 33 teletypes被ADM-3屏幕终端所取代,Joy和Haley开始感到ed编辑器存在的局限性,他们从伦敦的Queen Mary学院George Coulouris教授那里得到了一个名为em的编辑器,并开始着手开发一种每次一行的编辑器,名为ex。

1976年夏末,Thompson离开了Berkeley,而此时Joy和Haley开始对Unix的内核发生了浓厚的兴趣,在细心的 Schriebman教授关照下,他们将来自 Bell实验室的经过了"五十次变化"磁带的修正和改进部分第一次成功地安装到了系统上。他认真地研究了源代码,并建议完成几处小的改进,以在某种程度上解决内核瓶颈的问题?
早期发行版本

在人们对Pascal编译器上错误恢复工作感兴趣的同时,人们也开始提出了系统拷贝的需求。在1971年初,Joy完成恕?erkeley Software Distribution"的合并。这个第一发行版包括Pascal系统,而且在Pascal源代码的一个难懂的子目录下,附上了编辑器ex。过了一年,Joy作为发行组的秘书,寄出了大约三十份免费的系统拷贝。

这时出现了一些ADM-3a终端,它们提供屏幕定址光标的功能,Joy最终开始编写vi,为Berkeley带来一种基于屏幕的编辑器,但很快他就发现自己遇到了麻烦。在学校里,经费捉襟见肘是常有的事,老的设备从不会立刻被替换掉,Joy没有进行优化和更新几个不同终端的支持工作,而是决定采用一个小的解释器以重画屏幕,从而加强屏幕管理,此解释器由终端特性描述所驱动,此项工作的后来的结果是产生了termcap。

到1978年中期,软件发行版显然需要升级了,用户社团一直在不断扩大,在用户反馈意见的基础上,修改后的Pascal系统已明显变得更加健壮,并且它被分成了两个分支,以使其能运行在PDP-11/34s上,更新的结果就产生了"第二版Berkeley软件发行版",这一名称很快就被简称为2BSD,其中包含了增强的Pascal系统,vi和为几种终端而开发的termcap。 Bill Joy又一次单枪匹马地将各发行版集中在一起,回答用户的电话询问,并根据用户的反馈意见对系统中作了改进。过了一年,将近有75份磁带交付给了用户。尽管Joy在随后的一年里转而工作于其他的项目,但是2BSD发行版的发行工作没有停止,而且越来越兴旺。这一发行版的最后一版称为2.11BSD,这是一个完整的系统,至今仍运行在世界各个角落的几百台PDP-11上。

VAX Unix

1978年初,Richard Fateman教授开始寻找一台能够有较大地址空间的机器,以便他能继续在Macsyma 小组里的工作(最初开始于PDP-10上),那时刚问世的VAX-11/780满足了他的要求并且符合其财政预算,Fateman和其他十三个系里的同事共同提出了一份NSF提案,并将其他系的资金合并在一起,最终购买了一台VAX计算机。

最初的VAX运行的是DEC的VMS操作系统,但系里已习惯使用Unix环境,并想继续使用Unix, 所以在VAX到来不久, Fateman得到了由Bell实验室的John Reiser和Tom London开发的将Unix移植到VAX的32/V的拷贝。

尽管32/V在VAX机上提供了UnixVersion 7环境,但它不能很好地利用VAX硬件的虚拟内存能力,正象PDP-11系列中的早期机器一样,它是一种完全基于转换(swap-based)的系统。对于Berkeley的Mascsyma小组来说,缺少虚拟内存就意味着进程地址空间受限于物理内存的大小,在新的VAX机器上,最初物理内存为1 MB。

为了减轻这个问题所带来的矛盾, Fateman与Domenico Ferrari教授进行了讨论,Domenico Ferrari教授是Berkeley系统委员会的成员,他开始调查让Fateman的小组为Unix写一个虚拟内存系统的可能性。Ferrari教授有一位学生,名叫Ozalp Babaoglu,他开始寻找一些关于在VAX机器上实现设置分页系统的方法。由于VAX机缺少参照位(reference bits),因此他的工作变得非常复杂。

当Babaoglu接近于完成他的第一个方法时,他与Bill Joy取得了联系,请Bill Joy帮助他理解Unix内核的复杂内容。与Babaoglu的交流使Joy对其工作发生了兴趣,并帮助Babaoglu将代码集成到32/V中,后来又接着帮助进行调试工作。

不幸的是,Berkeley仅有一台VAX机,这台机器既要用于系统开发,又要用于一般的工作。因此,在圣诞节的假期后几个星期里,具有忍耐心的用户群体发现他们自己开始交替地登录到32/V和"虚拟 VAX/Unix"系统上。他们在后一种系统上运行时有时会突然中止,几分钟后紧随着就出现了32/V登录提示信息。到1979年元月,大部分臭虫被解决,32/V便已被载入历史而废弃了。 [ 相约加拿大:枫下论坛 rolia.net/forum ]

Joy看到32位的VAX很快会取代并淘汰掉16位PDP-11,于是开始将2BSD软件移植到VAX机器上,当时Peter Kessler和我移植了Pascal系统。Joy 移植了 ex和vi编辑器、C Shell和其它2BSD发行版中大量的小程序。1979年末,一个完整的发行版本被集成在一起。这个发行版本包括了虚拟内存内核,标准32/V实用程序,以及2BSD中的一些附加程序。1979年12月,Joy 首先发布了将近100份拷贝的3BSD,即Berkeley的第一个VAX发行版。

Bell实验室的最后版本为32/V,以后来自AT&T的所有Unix版本,从最初的System III到后来的System V,都由注重稳定性的商业版本的不同组织管理。伴随着Unix的商业化,Bell实验室的研究员开始感到作为兴起的Unix研究的源头有些力不从心了。当研究社团继续修改Unix系统时,他们发现需要有一个组织能开发研究版。由于Berkeley对Unix开发的介入很早,且具有发布基于Unix实用程序的历史,Berkeley很快步入并取代了先前Bell实验室的角色。

DARPA 支持

此时,在国防部高级研究项目署(Defense Advanced Research Projects Agency,DAPRA)的规划者们的办公室里展开了一场对Berkeley工作起着重大影响的讨论,DARPA的早期成果之一是成功地建立了一个覆盖全国范围的计慊??纾?粤? 铀?械闹饕?芯恐行摹?在那时,他们发现许多研究中心使用的计算机已经接近最后使用期限,并开始更新,而更新过程中最为耗费资金的部分是将研究软件移植到新机器上。 另外,许多地点不能共享他们的软件,因为硬件和操作系统不??
因为研究目的广泛而且不同研究小组的计算需求不同,他们无意依赖于单一某个生产厂商,因此仅选择一家硬件供应商是不切实际的,因此DAPRA的规划者们认为最好的解决方法是在操作系统这个级别进行统一工作。 经过多次讨论后,因为Unix被证实具有可移植性,所以规划者们决定采用Unix作为标准。

在1979年秋,Bob Fabry应DARPA对Unix发生的兴趣,写了一份提议书,建议说Berkeley可以开发了一种增强版本的3BSD给DARPA使用。Bob Fabry将其提案作了一份拷贝并带到了DARPA图象处理和VLSL 承包商的会议上,并给了ARPAnet的开发者代表,Bolt Beranek和Newman。当时有一种保守的看法是Berkeley是否能研制出一种工作系统,但是1979年12月3BSD的发布后,这些疑虑便烟消云散了。

随着3BSD版本日趋增长的良好信誉,更加确定了Bob Fabry的断言。Bob Fabrvy和DARPA签订了一份从1980年4月开始,共18个月的合同,这份合同要求Berkeley按DARPA 承包商的需要增加一些特性。在这份合同的赞助下,Bob Fabry建立了一个小组,命名为计算机系统研究小组(Computer System Research Group),或简称为CSRG。他立刻雇用了Laura Tong负责项目管理,Fabry转而将注意力放在找到一个项目领导者以管理软件开发,Fabry认为Joy刚刚通过他的博士学位(Ph. D)资格考试,他会将精力集中于完成学位上,而不会考虑软件开发的位置,但Joy有他的自己的想法。三月上旬的一天晚上,Joy给Fabry打了一个电话,表示他有兴趣负责进一步开发Unix。 尽管 Fabry对这个想法感到惊讶, 但Fabry考虑后还是立创鹩α耸oy的请求。

于是项目立刻开展起来,Tong建立了一套发行系统,能够比从前Joy的发行系统处理更大容量的定单。Fabry开始同AT&T的Bob Guffy及California大学的律师合作,制定所有人都能接受的正式Unix版本的条款。Joy集成了Jim kulp的作业控制机制,并增加了自动重启动功能,1K块文件系统,及宰钚轮AX机器(VAX-11/750)的支持。到1980年10月时,推出了一个粉饰一新的发行版本,称为4BSD,其中包括Pascal编译器,Franz Lisp系统,和一个增强的邮件处理系统。在其9个月生命期中,差不多发行了150份拷贝。版权的控制是以大学为单位的,而不是以每台机器为基础来计算,因此该发行版在近500台机器上运行。

随着发行版数量快速而且广泛地增加,以及Berkeley的 Unix的能够指望具有可见性,几个尖锐的问题开始冒了出来,Stanford研究院的David Kashtan 写了一篇论文,描述了他在运行VMS和Berkeley Unix 的测试结果。这些测试显示出在VAX机运行Unix系统的几个性能问题。于是Joy将他未来的计划暂时搁置在一旁,在长达几个月的时间中,他系统地优化了 Unix的内核。后来他又花了几个星期写了一篇应答文章,说明在Kashtan的测试点上运行Unix时的性能可以达到良好的状态,并能等同于VMS。

后来Berkeley没有继续发行4BSD,而是在优化后的系统加上Robert Elz的自动配置代码,在1981年的6月发布了4.1BSD。在随后的两年时间里,大约交付了400份的发行版。最初Berkeley准备之称为5BSD,但是遭到AT&T的抵制,因为AT&T觉得用户会将它与他们的Unix版本 -- Unix System V相混淆。所以,为了解决该问题,Berkeley同意改变其将来版本的命名规定,将版号仅保留在4BSD上,以后只增加小的版本号。

4.2BSD

4.1BSD发布后,许多关于性能的疑问被解决,DAPRA非常满意第一个合同的结果。紧接着又与Berkeley签订了一个为期两年的合同,并且合同资助额翻了五倍,合同金额的一半用于Unix项目的开发,其余部分用于计算机系的其它研究。合同的目的是要能在系统上完成主要工作,使DAPRA的研究社团能够很好利用它进行工作。

根据DAPRA社团的需要,Berkeley很快就制定出了对系统的进行修改的工作目标,在新系统中,特别强调要求包含一个更快速的文件系统,以使其吞吐量能够适应磁盘技术所达到的速度,支持处理几个GB地址空间的需求,提供灵活的进程间通信机制,以允许研究者能在分布式系统上工作,并能集成网络支持功能,以使运行新系统的机器能很容易地加入到ARPAnet中。

为帮助定义这一新系统,Duane Adams作为DAPRA在Berkeley的合同监督人,组成了一个小组称为"掌舵委员会"(Steering Committee),以协助指导设计工作,并确保研究社团的需求能得到满足。这个委员会在1981年4月到1983年1月间每年聚会两次,它的成员包括了Caifornia 大学Berkeley分校的Bob Fabry、Bill Joy和Sam Leffler;Bolt的Alan Nemeth、Rob Gurwitz、Beranek和Newman; Bell实验室的Denis Ritchie; Stanford大学的Keith Lantz;Carnegie-Mellon大学的Rick Rashid; MIT的Bert Halstead;Information Sciences Institute的Dan Lynch;DARPA的Duane Adms和Bob Baker; 以及California大学Los Angeles分校的Jerry Popek。从1984年开始,这种会议增加了几个工作室,规模得到了扩大,而且人数也越来越多。

1981年7月,在新系统中建议所包含特性的原始文档提交给了"掌舵委员会"和Berkelely以外的人员,引起了许多长时间的争论。 1981年夏天,我开始介入到CSRG的工作中,并参与了新的文件系统的设计工作。在那个夏天,Joy集中精力于设计进程间通信机制的原型版本。1981 年秋天,Sam Leffler加入到CSRG中,并作为一名全职人员与Bill Joy一同工作。

当Rob Gurwitz在Berkeley发布了早期的TCP/IP协议后,Joy将其集成到系统中并优化了其性能,此项工作使得Joy和Letfller清楚地意识到新系统应不仅针对DARPA标准网络协议,还要支持更多的东西。为此,他们重新设计了软件的内部结构,精炼了接口,以使得多种网络协议能够被同时使用。

在完成内部重构和将TCP/IP协议集成到IPC 功能的原型中时,还创建了几个简单的应用程序,可以让本地用户存取远程资源,这些程序包括rcp,rsh,rlogin和rwho,它们当时是作为暂时性的实用程序设计的,而且当时就希望最终要用更为合理的实用程序去替代它们(所以在命令前加了一个"r"前缀以示区别)。该系统被称为4.1a只在内部使用,于1982年4月发布。当时谁也没有指望它会被广泛地发行,不过这一系统原始拷贝使大家更加迫切期待着4.2版本尽快问世。

4.1a系统在它完成之前早就作废。但是在创建新系统提案的修订版时,用到了来自用户的有价值的反馈信息,这一新系统的提案称为"4.2BSD系统手册",该文档发表于1982年2月,它包括了将在4.2BSD中实现的使用系统功能的用户接口提案的简要描述。

在开发4.1a的同时,我完成了新文件系统的设计,并在1982年6月底将它集成到4.1a内核中。这一开发的最终结果是4.1b的诞生,但只是运行在 Berkeley选定的几台用于开发机器上。Joy觉得系统中还存在几个重要的悬而未决的问题需要解决,因此最好是避免发行,即使在Berkeley内部也不发行,最关键的问题是它要求每台机器的文件系统被转储和备份,并完成从4.1a到4.1b的转换。在文件系统的稳定性被证实后,Leffler继续添加与新文件系统相关的系统调用,而Joy则花时间修订了进程间通信机制功能。

在1982年的春末,Joy 宣布他开始进入Sun Microsystems公司工作,夏天过后,他将工作分开,一部分时间为Sun工作,另一部分时间为Berkeley工作,他花费了大量的时间修订了进程间通信机制,并重组了Unix的内核源码以减小对机器的依赖性。Joy离开后,Leffler接管了整个项目的开发,开发的最后完成期限已被设定,而且 Berkeley汛鹩δAPRA社团将在1983年春天发行完成的版本。由于时间所迫,Berkeley对开发所剩下的工作进行了评定,并设定了各项工作的优先级,特别需要指出的是,增强虚拟内存和进程间通信中最复杂部分的设计都降至低的优先级(后来被完全搁置)。同时,在Unix系统完成一年后,Unix社团的期望值也更为高涨,Berkeley决定在最终的系统完成之前,需要推出一个中间状态的版本,以使人们保持对它的关注。这个系统就是4.1c,在1983年四月发布,许多厂商使用该版本准备将4.2移植到他们的硬件上。从4.1c版本开始,Berkeley 聘用了Pauline Schwartz接管发行工作。

1983年6月, Bob Fabry将CSRG的管理控制权变给了Domenico Ferrari教授和Susan Graham,并开始休假,以结束他前四年紧张而狂乱的生活。 Leffler继续完成系统,实现了新的信号机制,加入了网络支持功能,重做了单独的 I/O系统以简化安装过程,集成了从Robert Elz处得到的磁盘配额功能 (disc quota),更新所有文档,跟踪从4.1c版本后出现的臭虫。在1983年8月,Berkeley发布了正式的系统,这就是4.2BSD。 < r o l i a. n e t >
当4.2BSD完成后, Leffler离开Berkeley去了Lucasfilm,他的位置由Mike Karels取代,Karels早期发行2.9BSD PDP-11软件时积累的经验为他的新工作提供了理想的背景。1984年12月,我获得了博士学位,并加入Karels的工作组,成为CSRG的一名全职工作人员。

4.2BSD的知名度是令人印象深刻的,在18个月内,就签发了1000多份站点许可证。可以说,随后发布了更多数量的4.2BSD的发行版,其数量超过了Berkeley先前所有软件发行版数量的总和。 大部分的Unix厂商愿意发行4.2BSD,而不是商业版本的AT&T的System V,原因在于System V既无网络功能,又无Berkeley的快速文件系统。 BSD版的Unix在商业市场上占主导地位的情况只持续了几年,随后又回到最初的状态,因为后来System V中集成了网络功能和其它一些4.2BSD所增强改进部分,所以厂商们通常又回到最初的选择。不过,后来的BSD开发成果仍继续集成到System V中。

4.3BSD

4.1BSD发布后,很快招来了许多的批评,大部分人是报怨系统运行太慢,这个问题并不奇怪,是因为新的功能并没有被优化,而且内核中的许多数据结构与这些新的功能的用途不很协调。Karels和我在第一年的项目工作中主要集中精力于优化系统,使系统变得更加漂亮。

我们花了近两年的时间优化系统和精炼联网功能的代码。 在1985年6月的Usenix会议上宣布了4.3BSD将在那个夏天末发布的消息。但是,我们的发布计划由于BBN中的一些人的原因而突然中断,他们指出我们从来没有用他们最终版本的联网代码更新4.2BSD,而我们仍在使用他们许多年前提供的非常粗糙的初始原型。他们对DARPA报怨说,Berkeley实现接口,而BBN则希望实现协议,所以Berkeley应该在4.3BSD中用 BBN的设计结果取代TCP/IP代码。

Mike Karel拿到了BBN代码,并对其自从BBN将初始原型交付Berkeley以来的工作进行了评估。他决定最好的计划是将BBN代码中体现好的想法集成到Berkeley的基础代码中,而不是替换Berkeley的代码基础。保留Berkeley代码基础的原因在于,在4.2BSD广为发行之后,代码基础已经得到了大量的测试和改进。但是,作为折衷方案,他提出在4.3BSD发行版本中包含两者的代码,由4.3BSD的用户自己在内核中选择使用哪一种代码。

在考虑了Mike Karel的决定后,DARPA认为发布两套代码基础会导致不必要的互操作性问题,并最终决定只发布一套代码。为了决定选择究竟采用哪套代码基础,他们将两者都交给了Ballistics 研究实验室的Mike Muuse作为独立的第三方进行评估。 经过一个月的评估,Mike Muuse提供了一份评估报告,报告中认为Berkeley的代码更为有效,但BBN代码在处理堵塞(Congestion)时效率更高。但是有一点最关键:Berkeley在所有测试中均无故障,而BBN代码仅在一些严格条件下运行时会死机。DARPA最后决定4.3BSD应该采用Berkeley代码基础。

修饰一新的4.3BSD系统终于在1986年6月正式发布。就像先期所预料的那样,它平息了许多用户对其性能上报怨,情况与4.1BSD发布后平息了对 4BSD版本报怨的情形非常类似。 尽管许多的厂商已开始走回头路,转回到了 System V上,但4.3BSD的大部分成果被集成到他们的系统中,特别是联网的子系统。

在1986年10月,Keith Bostic加入了CSRG。他以前一直努力将4.3BSD移植到PDP-11上。骋用他的一个条件是,允许他完成他这个项目。那时Kanel和我都不相信能得到一个系统,可以在VAX上编译成250KB,并满足PDP-11 的64KB地址空间的要求,但我们同意Bostic可以尝试实现他的这一设想。让我们大为惊奇的是,移植工作非常地成功,他使用了一个复杂的叠加集(set of overlays)和在PDP-11上的辅加处理器语句(auxiliary states states),其结果是发布了2.11BSD,由Casey Leedom和Bostic完成,该系统到1998年还运行在一些现存的PDP-11上。

同时,情况越来越清楚地表明VAX体系已经步入其生命的晚年,当时的确是考虑用其它的机器运行BSD的时候。 有人提出由Computer Consoles公司制造的一种新体系的时间已经来临,并被称为Power 6/32。不幸的是,在公司决定改变其战略方向时,该体系便死掉了。但是他们的确提供了几台机器给CSRG使用,让我们能够完成该项工作。于是由Bill Joy开始,将BSD内核分解为依赖于机器的部分和独立于机器的两部分,此项工作的结果导致了1988年6月4.3BSD-Tahoe的发布,这一版本名字中的Tahoe来自Computer Console公司在开发过程中使用的名字,他们原计划将它最终发布为Power 6/32用于机器上。尽管Power 6/32有用的生命期不长,但将BSD内核分为"依赖于机器"和"独立于机器"两部分是非常有价值的,它可使BSD移植到众多的体系结构中。

Networking,Release 1

到4.3BSD-Tahoe版本的发布时,所有的BSD用户必须先得到一份AT&T的源代码许可证,这是因为Berkeley 从来没有仅以二进制方式发行过BSD系统,发行版本总是包含了系统每个部分完整的源码。 Unix系统和BSD系统的历史表明,给用户提供源代码具有强大的威力。用户们不是被动地使用系统,而是可以积极地修改臭虫,提高性能和功能,完善功能,甚至添加一些崭新的持性。

随着AT&T源代码许可证的费用增加,一些希望能够使用BSD代码为PC市场制造独立的基于TCP/IP联网产品的厂商们发现,按照每个二进制拷贝交费是行不通的。于是他们要求Berkeley将联网的代码和实用程序从BSD发行版中分离出来,并且给他们签发许可证条款,而不需要AT&T 的源代码许可证。 显然,TCP/IP联网代码不存在于32/V中,所以它完全是由Berkeley和Berkeley的一些贡献者开发的, BSD最初的联网代码和支持性实用程序在1989年6月作为"Networking Release 1"发布,这是第一套由Berkeley发布的"自由可再发行"(freely-redistributable)的代码。

这个许可证的条款是宽大的,它允许被授权的用户以源代码或二进制形式发布修改过的、或未修改过的代码,并且可以不向Berkeley申报财务报告和版税,唯一的要求是在源代码文件中原封不动地保留Berkeley的版权声明,并且含有Berkeley代码的产品需在文档中声明其产品包括来自于加州大学和其贡献者的代码。尽管从Berkeley那里得到一份磁带需付1000美元的费用,但任何人都可自由地从已经获得了Berkeley拷贝的人那里获得新的拷贝,实际上,许可证条款公布后不久,就有几个大的站点已将代码存放在匿名FTP机器上。因为许可证的条款如此宽容,所以几百个组织购买了磁带拷贝,CSRG当然很高兴,因为这笔收入有利于今后进一步的开发工作。

4.3BSD-Reno

同时,基础系统的开发仍在继续。虚拟内存系统(virtual memory system)的接口是在4.2BSD体系的文档中首次得到了描述的,虚拟内存系统最终被BSD采用。在大多数情况下,CSRG常常是试图发现一些现成的代码,并将其集成到系统中,而不是从头编写代码。 所以,我们没有设计一个新的虚拟内存系统,而是四处寻找已有的代码。 我们的第一个选择来自Sun Microsystems的SunOS系统中的虚拟内存低常?」芤欢扔幸恍┕赜?un想将代码提供给Berkeley的讨论,但后来便不了了之。于是我们作出了第二种选择,将 Cornegie-Mellon大学的MACH操作系统的虚拟内存系统集成到BSD中,Utah大学的Mike Hibler完成了将MACH的核心技术与4.2BSD体系手册中描述的用户接口进行合并(该接口也被SunOS选用)。

当时另外一个主要的补充是加进了与Sun兼容的网络文件系统(NFS)版本。 同样,CSRG也是避免了去动手编写实际的NFS代码,此项工作是由加拿大的Geulph大学的Rick Mocldem完成的。

尽管那时我们没有完整特性的4.4BSD可发布,但是CSRG仍决定发布一个过渡性版本,以取得另外的对这两个主要附加项功能的反馈和经验。此授权的过砂姹境莆?.3BSD-Reno,并在1990年早些时候发布,该版本是在内华达州的一个大的赌城被命名的,似乎向用户提供了某种暗示,表明运行过渡版本是多少有些赌博意味的。

Networking,Release 2

在一次CSRG的小组每周例会上,Keith Bostic提出了自由可再发行版(freely-redistributable)普及性的主题,并要求做一个扩展版以包括更多的BSD代码。Mike karel和我向Bostic指出,要发行系统中的那些大的部分是一项巨大的工作,但我们同意,如果他能处理怎样重新实现几百个实用程序和巨大的C Library,那我们就可以解决内核。karel和我私下里都觉得讨论到此结束,不会再有什么结果。

但这并没有妨碍 Bostic进行技术上的探索和大量的基于网络的开发工作,他要求其成员依据发布的描述从头改写Unix的实用程序。作为补偿,他们仅要求能在Berkeley 贡献者列表上每一相应改写的实用程序旁列出他们的姓名。此项工作开始进展很慢,并且大部分工作是琐碎的实用程序。但是完整实用程序列表的不断增长,Bostic持续在一些像Usenix这样一些公众场合下向外寻找的贡献者。贡献者的比例也保持继续增长,因此列表上的实用程序数量很快就在18个月内超过100个,几乎所有的重要实用程序和库都被重写。 { 枫下论坛 rolia.net/forum }

后来,Bostic自豪地走进Mike karels和我的办公室,手里拿着清单,他想知道我们如何对内核做工作。我们重新设定了我们的工作任务,Kavels,Bostic和我花了几个月的时间回顾整个发行版本,一个一个文件地看,去掉最初从32/V版本中产生的代码,当所有不必要的文件清除后,我们发现仅有6个内核程序仍然具有32/V版本的影响,而且重写起来很费劲。当时我们想如果我们能重写这6个文件,那么我们就能发布一个完整的系统,我们决定先是发布我们现有的程序。但是,我们的确从Canifornilia大学行政管理部门的较高层人士那里寻求过对我们扩展版本的许可。经过多次内部讨论,并验证了我们对具有专有权利的代码的判断方法后,学校准许我们继续进行工作。

我们最初的想法是给我们第二个自由可再发行版本起一个全新的名字,但是我们知道要得到一个全新的版权并由大学律师批准,势必会有不必要地浪费资源屯涎邮奔洌??晕颐蔷龆ǎ?掳姹境莆?etworking Release 2,因为我们可以在Networking Release 1版权许可证协议的基础上作一些修正。 于是,我们的第二个经过大量扩充的自由可再发行版本在1991年6月推出,Networking Release第二版的条款和花费与Networking Release第一版相同。和以前一样,几百个个人和组织付了每套1000$的费用从Berkeley购买了发行包。

在Networking Release 2发行版到完整的功能系统之间的间隙得到弥补以后,也就是在版本发布后的6个月时间内,Bill Jolitz已经重写了那6个漏掉的文件,他很快就发布了完整的可运行在386PC体系上的编译过和可启动的系统,他称之为386/BSD。 Jolitz的386/BSD发行版本几乎全是在网络上完成的。他把它放在匿FTP站点上,让任何需要使用它的人都能自由地下载。几个星期内,他就有了大量的追随者。

不幸的是,要保证一份全职工作的需要就意味着Jolitz不能够分出更多的时间来处理大量的臭虫和改进386/BSD。所以,在386/BSD版本发布的几个月内,一群具有敏锐目光的386/BSD用户成立了一个小组,他们收集资源以帮助维护和增强后来的系统。他们的版本后来成为NetBSD 。 NetBSD小组侧重于支持尽可能多的平台,并继续按照CSRG所创立的研究风格进行开发。直到1998年时,他们的发行版本仍仅能在网上传播,没有任何介质,他们的小组继续以最关键的核心技术用户为对象。有关NetBSD项目的详情,可参见 http://www.netbsd.org。

在NetBSD小组成立后几个月,FreeBSD小组成立,其宗旨是仅支持PC体系并追寻一个数量更多(但更少技术化)的高级用户组,正如Linux所做的那样。 他们建立了精致的安装脚本并开始以低成本的CD-ROM发行他们的系统。系统易于安装、强大的网上促销,以及像在Comdex上这样一些关键的贸易展览会上频频露面,这一切有机地结合在一起,掀起了又快又大的增长浪潮。毫无疑问地,现在的FreeBSD的安装数量在所有Release 2派生系统中最多。

在Linux逐渐风靡的过程之中,FreeBSD也从Linux那里得到了帮助。它增加了一个Linux仿真模式,允许Linux binaries可运行在FreeBSD平台上,这个特性允许FreeBSD用户使用不断扩大的Linux应用程序,从而使FreeBSD变得更加健壮⒖ 煽浚?低承阅芨?谩8眯∽樽罱??枇艘桓觥?reeBSD 商店" ( 网址是 http://www.freebsdmall.com )。它将许多的FreeBSD社团组织在一起,提供咨询服务、派生产品、图书及新闻札记等。

在90年代中期,从NetBSD小组中分离出OpenBSD小组,他们的技术宗旨在于提高系统的安全性,他们的市场目标是使得系统更易于使用并且更广泛地被采用,因此他们借用了FreeBSD发行版本便于安装的许多特性,并开始生产并销售CD-ROM。有关OpenBSD项目详细情况,可见http: //www.openbsd.org。

官司

在一些小组组织起来,在Networking Release 2 磁带的基础上建立并发行自由可再发行的版本时,一家名为BSDI(Berkeley Software Design, Incorporated)的公司成立,以开发和发行以BSD代码为基础的商用的版本(更多有关BSDI的信息见http: //www.bsdi.com),跟其他小组一样,他们也从那6个漏掉的文件开始的,也就是Bill Jolitz重写后放在386/BSD上的那6个文件。BSDI开始在1992年1月以每套995美元的价钱销售他们的系统,包括源代码和二进制代码。他们开始作广告, 宣称他们的价格只是System V的源代码加上二进制代码系统的99%,感兴趣的用户可致电1-800-ITS-Unix。

在BSDI的销售战役打响后不久,他们收到了来自Unix系统实验室(USL)的来信,这是一家AT&T拥有其大部分产权的机构,它主要从事开发和销售Unix。信中要求BSDI停止他们的Unix销售,特别是停用热线电话号码,尽管那个电话号码立刻被停用,并在广告中的广告词也进行了变动,解释其产品不是Unix,但是USL仍然对BSDI的作法不满并诉诸于法庭,控告BSDI销售他们的产品。诉讼状中称BSDI产品包含了USL的代码的所有权和商业机密, USL希望能得到直到诉讼解决前使BSDI停止销售的禁令,宣称他们不能忍受由于BSDI继续销售发行版本而导致商业机密泄露所带来的损失。

在最初听到禁令时,BSDI坚决地认为他们只是简单使用了由加州大学发布的自由可再发行版本的源代码加上6个附加文件,他们愿意讨论任何有关6个附加文件的内容,但不相信他们应该对加州大学发布的文件负责。法官同意BSDI的争辩,并且告诉USL,他们可以以6个文件为基础再陈述的诉状,或者是撤消此案。 USL意识到如果他们只陈述那6个文件,将会经历相当困难的时间处理这个官司,于是决定改写诉状,同时控告BSDI和California大学。如以前一样,USL要求停止发行California大学的Networking Release 2,并停止在BSDI的产品中销售它。

在听说了即将发出禁令后的几个星期后,Berkeley开始了认真的准备工作。所有CSRG成员都宣誓作证,因为几乎他们所有人都受雇于BSDI,辩护、反辩护、再反辩护在律师之间来回穿梭进行,Keith Bostic和我本人不得不写下几百页的材料以供在各种辩护中使用。

在1992年12月, 新泽西州的地方法官Dickinson R. Debevoise听到了禁令的争议。尽管法官通常发布禁令非常快速,他仍然决定为之提供咨询。六个星期后的一个周五,他发表了一份长达40页的意见书,在文章中他否认禁令,并对起诉书械乃?观点(除了两点之外)表示反对。两点保留集中在最近的版权和丧失商业机密的可能性上。他还建议此案在联邦法院受理进行之前应先在州立法院系统进行?

California大学得此启示后,便立刻在接下来的那个星期的周一的上午向加州州立法院提出了对USL的反诉,通过首先在加州法院立案,加州大学已经为其进一步在州立法院的活动进行了本地化工作。宪法规定,所有州立法院的立案只能在一个州内完成审理,以防止诉讼当事人在各个州对同一案件进行50次立案。 结果是如果USL想在某个州立法院状告加州大学,则必须到加州法院上诉,而不是在他们的所在地新泽西州。

加州大学的诉状中宣称,USL未履行义务,没有向其提供付款,因其在System V中使用了BSD代码,而此项是他们与加州大学鉴定的许可证中规定的义务之一,若此指控成立,加州大学将要求USL打印出所有文档,并附加合适的信誉声明,以通知他们的版权授权用户(Licensees)他们造成的疏忽,并要在主要的出版物例如《Wall street Journal》和《Fortune》杂志上刊登整版的广告,以告知商界他们的疏忽大意。

在州立法院立案后不久,Novell公司从AT&T收购了USL。 Novell公司的执行总裁 Ray Noorda公开表示他愿意在市场上而不是在法庭上竞争。1993年夏天,双方开始协商。不幸的是,双方分歧很深,以致于对话进展缓慢。 USL方面在Ray Noorda的推动下,许多坚持不让的地方开始被取消,双方最终在1994年1月和谈成功。其结果是从Networking Release 2含有的18000个文件中去掉3个文件,并对其他文件做了一些小改动。另外,加州大学同意在将近70个文件中加入USL版权声明,尽管那些文件仍继续被自由地再发行。

4.4BSD

在经历这番曲折后,1994年6月推出了一个新版本,称为4.4BSD-Lite。其砜芍さ奶蹩钣胛etworking Releases的条款相同。特别之处是,许可证条款允许自由再发行源代码和二进制代码,只要在不触动加州大学的版权的完整性,并且其他人在使用代码时必须收到相同的信用声明。同时,完整的系统被命名为4.4BSD-Encumbered发行,它仍然要求用户拥有USL源代码的许可证。

诉讼结果还规定USL不得再控告任何使用4.4BSD-Lite作为系统基础的组织。因此,当时所有的发行BSD的小组,如BSDI、NetBSD和 FreeBSD等,都不得不重新开始将他们的源代码改为以4.4BSD-Lite源代码为基础,并在此基础上再合并他们的增强和提高部分。虽然这些重新集成的工作导致了不同BSD系统的开发在短期内被延迟,但幸运的是,在Networking Release 2发布后三年中,如同CSRG所做的那样,所有不同小组的开发可以再次步调一致。

4.4BSD-Lite, Release 2

由4.4BSD-Encumbered和4.4BSD-Lite版本获得的经费用于非全日制工作人员修改臭虫和增强性能等工作,这些变化持续了两年,直到臭虫报告的比例下降和特性增强已不再需要才停止。 所有的这些变化都体现在1995年6月发布的最后版本的4.4BSD-Lite Release 2中。这些变动中的大部分实际上都被用于其它系统的源代码基础中。
随着4.4BSD-Lite Release 2的发布,CSRG小组也被解散了。在领导了将近20年BSD发行的航程后,我们感觉到应该让其它有新思想和没有条条框框限制的人来接管此类工作,虽然好象最好要有一个独立的中心权威来监督系统开发,但有几个不同宗旨的小组的确可以保证尝试许多不同的方式。因为系统是以源代码形式发布的,最好的主意是由某个或某些小组的成果易于被其他小组接纳。若某一个小组工作特别有成效,那么它的系统必将占据主导地位。

今天,开源软件运动得到更多的关注和尊重,尽管Linux系统是其中最有名的一个,但是在Linux发行版本中约半数的实用程序源自于BSD发行版本, Linux发行版本也在很大程度上依赖于由FSF(自由软件基金会,Free Software Foundation)开发的实用程序,例如编译器、调试器及其它工具。 总之,CSRG,FSF和Linux 内核开发者已经创建了自开源软件出现后并以此为基础的平台。我很自豪有机会帮助过启动开源软件运动。我希望有一天,它会成为无论什么地方用户和公司开发和购买软件时更愿意采用的方式。
 
后退
顶部