信息化 频道

年度创新英雄:安全斗士埃德尔曼

编者按:历史上最伟大的软件、对世界影响最大的,是BSD4.3。

  现在,让我为大家揭晓史上最伟大的软件——Unix。

  因为创造出Unix,贝尔实验室常常得到赞誉,但贝尔实验室从来没有为研发这套操作系统投入过一分钱。实际上,实验室的管理层对此一无所知。当时,实验室让研发人员开发的是一套面向多客户的名为Multics的项目。该项目当时融合了许多新创意。但这个项目最后被解散了,贝尔实验室的一名参与者肯· 汤普森(Ken Thompson)决定设计一套Multics的个人版,以便他编写射击游戏。费尔德曼说他当年是美国电话电报公司(AT&T)Unix项目组排名第七的研发人员,目前是美国计算机学会(Association for Computing Machinery)的主席。

    汤普森设计这套简单操作系统的初衷,是把电脑随机存储器(RAM)里的数据整块或是整页(数据页)地移动到硬盘上,释放内存空间。当再次使用它们的时候,操作系统知道访问硬盘并把它们拉回存储空间。通过这种方法,一套庞大的操作系统就可以在一台小型电脑上运行,且只占用少量内存。它的系统也是一套多用户系统。当时的大型主机只限一人使用,令计算时间变得十分昂贵,汤普森的“非丛式信息和计算系统”(首字母缩写为Unics,编者注:Unix的名字便来自于该缩写)能允许两个人同时使用一台电脑。

  Unix体现了软件的最优良传统:自身具备不断更新的生命力。汤普森在一个贝尔废弃的项目上研制Unix,研发的工具就是一台DEC PDP 7迷你电脑,内存是16K或32K—费尔德曼无法肯定究竟是哪个数字。“汤普森在编写Unix时,遇到了很大的限制。没内存、也没高效的中央处理器(CPU)。到如今要是你的手表没有比这更高的内存量或CPU,你都会觉得不好意思呢。”

  当时实验室的计算科学研究小组(Computer Science Research Group)听闻汤普森开发出Unics,希望要一份复件。在集团的要求下,汤普森和一名同事丹尼斯·里奇(Dennis Ritchie),同意在系统里加入文本格式化功能,但前提是两人能拥有一台PDP 11/20,当时一种计算能力更强的电脑。因此,Unix文本处理功能是以物物交换的形式得以实现的。Unics变成了Unix,被结构更为谨严更易于上手的C代码重新编写,并且在推出Unix3代时由AT&T进行商业化,推向市场。

  综上所述,Unix系统3代差不多就是最伟大的软件—至于最最伟大的软件,请读者容我卖个关子。

  Unix3代体现出一种进步,但它缺乏很多功能和设置,诸如窗口型输入系统、图形用户界面,以及与分布式系统进行对话的方法。为了迫使IBM放松对大型主机的垄断,AT&T只向研究人员和大学收取很少的经费便允许它们拥有Unix3代。有些人认为当软件在互联网上可以免费下载时,才导致了开放源代码这种行为的出现。事实并不是这样,Unix传播的早期阶段就为软件开源运动埋下了伏笔。Unix各类版本中的一个来自一位在夜间工作的大人物,他想改善加州大学伯克利分校的Unix版本。其他研究者听说比尔·乔伊(Bill Joy)在Unix里添加了新功能并要求他给他们邮寄一份拷贝。根据艾瑞克·奥曼(Eric Allman)的回忆:首份开源代码并非数码文件,是一卷磁带。在完成其他工作后,乔伊深夜把它装进邮包寄送出去。奥曼是乔伊的研究生同学,也是 Sendmail的作者。1977年,乔伊和其他研究生改进后的Unix使得伯克利软件套件(BSD)声名鹊起。

GNU哲学

  Unix通过不连续的代码模块进行设计,每个模块都跟硬件体系的部分相对应。这使得Unix比IBM的操作系统更容易进行改写。伯克利的硕士生动作很快。他们加入了简洁、快速的文件系统,可靠的网络组件和一款强大的代码编辑器Vi。他们增加了伯克利端口应用编程接口(API),让系统在网络中传输数据就好像在本地硬盘上一样便捷。

  国防军备承包商Bolt Beranek & Newman公司(下称BBN)当时是国防高级研究项目局(Defense Advanced Research Projects Agency,下称DARPA)TCP/IP组网项目的官方开发商。在BSD4.1a版本中,伯克利的学生们修改了TCP/IP组网协议。在1986年, Darpa测试了BSD4.3版本TCP/IP,认为它的性能优于BBN的版本。

  1982年,乔伊离开伯克利,参与创立Sun,利用BSD作为Sun操作系统和Solaris网络操作系统的底层基础。Sun和AT&T合作,改善了V System,创造出一个很耐用的System V第4版。他们同意:这将成为未来Unix的标准版本,想要从投资Unix获得回报的AT&T当时提高了获得软件的使用费。

  但是伯克利的学生们可不是那么容易对付的。他们改写了BSD的Unix,删除了有关AT&T的文件并创造出一个能在低成本英特尔硬件上运行的新发布平台。

  由于害怕未来这个版本会导致AT&T丧失利润,AT&T的Unix实验室把BSDi公司[为英特尔公司(Intel)提供BSD的公司]告上法庭。最终,AT&T的Unix实验室赢得了诉讼,束缚了BSDi公司许多年。但与此同时, AT&T利用Unix漫天要价激怒了理察·斯托曼(Richard Stallman)。他是在MIT运用这套系统从事人工智能研究的硕士研究生。他认定,软件是一种智力资产,应该免费。就像他的研究界同行公开的学术著作一样。他设计了一套工具称为GNU(编者注:GNU是“GNU's Not Unix”的递归缩写),程序员可借此来创造自己的软件。

  这些工具被芬兰首都赫尔辛基的21岁大学生林纳斯·托瓦兹(Linus Torvalds)得到了。当时他在寻找Unix的一个版本,能在他使用英特尔硬件的电脑上运行。他利用这套工具开发出Linux,接下来的故事大家都知道了。结果Linux广受欢迎,最终取代了基于英特尔硬件的BSD。如今,Linux也在虎视眈眈高端市场。但Linux仅仅是一个不完整的GNU系统及其前辈BSD的拷贝而已。后两者创造了Linux中所有的关键理念。这也就是为什么互联网的奠基石,Sendmail和 BIND,是基于伯克利Unix系统研发的,而非System V。这也是微软为何在寻找在视窗软件中执行TCP/IP协议非常好的的系统时,选择了BSD Unix的一个版本。当1983年,DARPA想建立起自己的阿尔帕网络(Arpanet)—也就是今天的互联网时,该公司放弃了现成的协议转而改用 BSD的TCP/IP。

  到现在你该明白了:历史上最伟大的软件、对世界影响最大的,是BSD4.3。其他的Unix版本在商业方面更成功,但说到BSD累积起来的成就, BSD4.3代表了非常好的创新颠峰;它是互联网底层最大的单一加固者。更重要的是,开发完善Linux和推动开源运动的激情直接源自打造BSD的理念:热爱计算能力,并且深信人类的智能应该得到自由的(同时也是免费的)延伸。这是一种提升人类在天地间位置的巨大力量。(译/爱琳)

(信息周刊)

0
相关文章