快捷搜索:

C语言和Unix的发明史

追根溯源-C语言和Unix的发明史

  导言:偶然在网上看到此文,因其详尽和流畅的文字,转此分享给大家。尽管我们对C和Unix的历史并不陌生,尽管我们对Linux的流行视为必然,但在这些现象的背后,总演绎着一些伟大的人或者事。了解这些,或许,我们不会轻易被眼前的繁华所遮蔽。

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

  在计算机发展的历史上,大概没有哪个程序设计语言像C那样得到如此广泛地流行;也没有哪个操作系统像UNIX那样获得计算机厂家和用户的普遍青睐和厚爱。它们对整个软件技术和软件产业都产生了深远的影响。而C和UNIX两者都是贝尔实验室的丹尼斯·里奇(Dennis MacAlistair Ritchie)和肯尼思·汤普森(Kenneth Lane Thompson)设计、开发的。因此,他们两人共同获得1983年度的图灵奖是情理中的事。我们先介绍汤普森,因为就C和UNN两者的关系而言,UNIX的开发在前,C是为了使UNIX具有可移植性而后来研制的;就里奇和汤普森两人的关系而言,他们两人当然是亲密的合作者,但汤普森在UNIX的开发中起了主导的作用,而里奇则在C的设计中起的作用更大一些。

  汤普森1943年2月4日生于路易斯安娜州的新奥尔良,其父是美国海军战斗机的驾驶员。汤普森自幼的爱好有两个,一个是下棋,一个是组装晶体管收音机。他父亲为了发展孩子的智力和能力,在晶体管当时问世不久,价格不菲(每只晶体管约售10美元)的情况下,很舍得为汤普森买晶体管让他摆弄。由于爱好无线电,汤普森上加州大学伯克利分校时学的专业是电气工程,于1965年取得学士学位,第二年又取得硕士学位。求诩洌共渭恿送ㄓ枚ρЧ荆?General Dynamics Corporation)在伯克利实行的半工半读计划( work-study Program),因此既增长了知识,又积累了不少实践经验。

  毕业以后,汤普森加盟贝尔实验室。虽然他学的是电子学,主要是硬件课程,但由于他半工半读时在一个计算中心当过程序员,对软件也相当熟悉,而且更加偏爱,因此很快就和里奇一起被贝尔派到MIT去参加由ARPA出巨资支持的MAC项目,开发第二代分时系统MULTICS。但就在项目完成前不久,贝尔因感到开发费用太大,而成功的希望则不大而退出了该项目,把所有成员都调回贝尔。这使汤普森和里奇深感沮丧。返回贝尔以后,面对实验室中仍以批处理方式工作的落后的计算机环境,他们决心以他们在MAC项目中已学到的多用户、多任务技术来改造这种环境,以提高程序员的效率和设备的效率,便于人机交互和程序员之间的交互,用他们后来描写自己当时的心情和想法的话来说,就是“要创造一个舒适、愉快的工作环境”。但他们意识到,贝尔领导人既然下决心退出MAC,就不可能支持他们的想法,不可能为之立项,提供资金和设备,他们只能悄悄干,自己去创造条件。1969年,万般无奈的汤普森在库房中偶然发现一台已弃置不用的PDP-7,大喜过望,立即开始用它来实施他们的设想。但开头是十分困难的,因为这q PDP-7除了有一个硬盘、一个图形显示终端和一台电传打字机这些硬设备外,什么软件也没有。

  他们只能在一台 GE 645大型机上编程、调试,调通以后穿孔在纸带上,再输入PDP-7。以这种“可怕的”工作方式开发两年以后,连这台PDP-7也损坏得不能再用了。这时,他们听到一个消息,实验室的专利部需要一个字处理系统以便处理专利申请书(贝尔每年要提出不少专利申请),汤普森立即找到上级自告奋勇承担这一开发任务,在这个冠冕堂皇的借口下,他们申请到了一台新的、设备完善的PDP- 11,这才使开发工作顺利地真正开展起来。

  汤普森以极大的热情和极高的效率投入工作。开发基本上以每个月就完成一个模块(内核,文件系统,内存管理,I/O……)的速度向前推进,到1971年底,UNIX基本成形。UNIX这个名称是从MUL-TICS演变而来的:他们变MULTI为UNI,变CS为X。为了向上级“交差”,UNIX首先交给实验室的专利部使用,3个打字员利用UNIX输人贝尔当年的专利申请表,交口称赞系统好用,大大提高了工作效率,这样,UNIX迅速从专利部推广到贝尔的其他部门,又从贝尔内部推向社会。贝尔实验室的领导人终于认识到了UNIX的巨大价值,把它注册成为商标(但有趣的是,由于法律上的原因,注册商标及版权被贝尔的上属公司AT&T取得),推向市场。贝尔的一个行政长官甚至宣称,在贝尔的无数发明中,UNIX是继晶体管之后的最重要的一项发明。著名的国际咨询公司 IDC的高级分析员 Huie Bruce Kin估计,1985年单是美国就有27万7千个计算机系统使用UNIX,1990年这个数字增长至210万。目前世界上UNIX的安装数量超过500万套,用户数达到3000万。

您可能还会对下面的文章感兴趣: