1983年图灵奖演讲稿

关于软件研究的沉思

DENNIS M. RITCHIE
AT&T Bell Laboratories
Murray Hill, NJ 07974

为了表彰贝尔实验室的Dennis M. Ritchie和Ken L. Thompson,在UNIX操作系统的开发和实现上所作的贡献,1983年ACM A.M. 图灵奖在协会10月份的年度大会上,被授予他们二位。

UNIX时分操作系统由Thompson设计,在1960年代末由Ritchie加入,共同开发。对UNIX系统可移植性的关键性贡献,是由Ritchie开发的C程序设计语言。

他们的主要论文“UNIX时分系统”,首先被用于1973年ACM的第四次计算机操作系统原则讨论会,一个修订版本随后出现在1974年7月。该论文获得ACM的1974年最佳程序设计语言和系统论文奖。

图灵奖甄选委员会说,“UNIX系统的成功,源自它在少数几个关键思想上的选择,和它们的优雅实现。UNIX系统模型领导一代软件设计者,迈向思考程序设计新方式的道路。UNIX系统的精华,是它让程序员能立足于他人工作基础之上的框架。”

这个奖是协会对计算机社会所产生的技术贡献的最高认可。它是为了表达,对在计算机科学做出重要贡献的英国数学家Alan M. Turing的尊敬。

Ritchie和Thompson在大会上分别作了演讲。Ritchie着重于贝尔实验室使UNIX开发,成为可能的环境。Thompson讨论了关于软件作者以外的人,能在多大程度上信任软件的问题。

Thompson的论文从171页开始。

在贝尔实验室孕育UNIX项目的环境能再次产生吗?

UNIX操作系统突然间成了新闻,但它一点都不新。它开始于1969年,当时Ken Thompson发现了一台没有人使用的PDP-7计算机,并着手建立一个他喜欢的计算环境。他的工作很快吸引了我;我加入了这个计划,然而大部分思想,至此的大部分工作,都是他的。很长时间以来,贝尔实验室我们所在研究小组的其他人,就开始使用这个系统;尤其是Joe Ossanna, Doug McIlroy和Bob Morris,都是热心的评论家和贡献者。在1971年,我们获得了一台PDP-11机器,在那一年结束时,我们开始支持我们的第一批真实用户:三个打字输入专利应用。在1973年,系统被用C语言重写,也是在那一年,它在操作系统原则大会上,被第一次公开描述。产生的论文发表在第二年的ACM通讯上。

此后,它的使用在贝尔实验室之内或外界,都稳定增长。一个开发小组被建立,以支持公司内部的项目,并有几个研究版本被许可供外界使用。

最后的研究发布是1979年的第七版系统;再近的时候,AT&T开始销售系统III,并提供系统V,这两个开发小组的产品。所有研究版本都是“以现状提供”的,不提供支持的软件;系统V是一个在几个不同硬件生产线上,提供支持维护的产品,包括AT&T设计和生产的3B系统。

UNIX被广泛使用,并且在今天,它甚至被提及为一种可能的工业标准。它是如何成功的呢?

当然存在它的技术上的优点。因为这个系统和它的历史,已经在文献里作了相当详尽的讨论。我将不会讨论这些特点,除了一点;尽管在Don Norman的自动化数据文章里,他浓墨渲染的许多UNIX表面的不一致性,并且不管它的膨胀,UNIX是一个在限制中带来优良思想和模型的简单、连贯的系统。尤其是系统的这个方面,是它受它的追随者的喜爱。

除了技术上的因素,还存在社会性质的力量,也推动了UNIX走向成功。首先,它出现在大型、集中式管理成为可能的时候;1970年代是小型计算机的十年。小的群体能够建立它们自己的计算环境。因为他们是在开始一个新的环境,因为制造商的软件,充其量是无趣并且经常是可怕的,一些愿意冒险的人希望尝试一个新的和有趣的,尽管是不提供支持的操作系统。

其次,UNIX最先在PDP-11,1970年代最成功的新小型机上可用,并且很快,它的可移植性把它带到许多新机器上,在它们出现时。在UNIX被创造出来的时候,我们需要一台机器,DEC PDP-10或SDS[后来的Xerox]Sigma 7。回顾起来,如果我们成功获得了这样的机器,肯定的是,UNIX也可能被编写出来,但可能已经消亡。类似地,UNIX很多东西归功于Multics;像我已经说过的,它超越了它的父辈,因为像其它许多特性一样,它并没有需要特殊硬件支持。

最后,UNIX有一个不常见的、历时很长的孕育期。在这其中的大部分时间(比如1969-1979年),这个系统有效处于它的设计者们的控制下,并被他们使用。实现那些系统设计思想和开发软件,都需要时间,尽管这样,系统仍然在贝尔实验室内部,和外界具有使用许可的人们使用的时候,开发出来了。因此,我们设法控制着主要的设计思想,同时得到了一群热情、有足够技术的用户,他们通过一个在平静的、交流和非竞争的环境里,贡献了设计思想和程序。一些来自外界的贡献是有价值的,例如来自加州大学伯克利分校。我们的用户广泛,尽管人数不多,分散在公司内部、大学和一些商业和政府组织。因为这些早期使用者网络,这个系统在学者间变得重要,而不是商业和市场。

工业计算机科学研究由什么组成?一些人有印象,原始的UNIX上的工作是一个私自的项目、一个“失败的作品”,并不是这样的。研究工作者被假定要求去发现或发明新东西,尽管早期我们依赖于贫乏的硬件,我们总是得到管理鼓励。同时,的确没有什么像一个开发项目。我们的意图是,为我们自己创造一个合适的计算环境,我们希望其他人喜欢它。Thompson和我所在的贝尔实验室的计算科学研究中心,主要有三类研究领域:理论;数值分析;和系统、语言、软件。尽管是为了自己兴趣的结果工作,例如,在一篇学习期刊的论文中,不但是被容许的,也是受欢迎的,存在强烈尽管惊人的微妙的压力,思考关于我们公司的问题。自我15年前加入贝尔实验室以来就是这样的了;并且这也没有什么令人惊奇的;以前的贝尔系统,可能开起来像受垄断保护,但是研究总是需要付出。确实,研究工作者喜爱去寻找,需要为之工作的问题。在一个大公司从事研究的好处之一是,范围广泛的难题会出现。例如,理论家可能对编译器设计,或LSI算法做出贡献;数值分析家研究半导体的负荷和当前分布。以及,当然,软件类型像设计系统和编写人们使用的程序。因此,贝尔实验室的计算机研究,对这个世界担负有相当多的承诺和义务。并不担心法令要求我们去进行实践。

事实上,对我们中一些人,一个主要的挫败是,不能使他人相信,我们的研究成果能够真正有用。有人可以发明一个新应用,编写一个例证程序,并投入我们实验室的使用当中。为了让公司能最好利用它们,许多此类示范需要更进一步开发和不断的支持。在过去,这种使用只包括在贝尔系统内部;近来,有可能开发一个产品用于直接销售。

例如,Mike Lesk几年前开发了一个自动目录辅助系统。这个程序有一个在线的贝尔实验室电话簿,并通过一根电话线,连接到到一个声音合成器和语音解码器。一个人拨入这个系统,在电话键盘上键入一个名字和位置代码;它回报那个人的电话号码和办公室地址(它没有尝试读出这个名字)。不管在十二个键的散列(比如,把A,B和C放在一起),它的精确度是可以接受的:它在尝试约百分之五后不得不放弃。这个程序在小范围内获得了成功,并很好使用。不幸地是,我们没有找到人来接受它,甚至作为一个,在公司内部可以提供支持的服务,把它以公开方式提供,它将会过度耗费我们的资源,所以最后它被废弃了。(我选择这个例子,因为它不但历史足够久远,可以加剧当前的争论,而且也是及时的:公司最近公布了电话目录,并询问我们是否可以恢复使用该系统。)

当然并非每一个建议都值得开发和支持。不论无何,世界是变化的:我们的想法和建议,较之以前,更被渴求。这种增长在影响上几年来都在继续,部分是因为UNIX的成功,但是,也因为最近我们公司结构的显著变化。

AT&T在1984年初,剥离了它的电话运营公司。对于这对贝尔实验室的基础研究有什么含义,有相当多的公众猜测;一篇在科学杂志上的报道非常典型。一种担心表示,基本研究多半会衰退,因为它产生的不足的短期收益,对新的更小的AT&T。公司的公众定位是可靠的;而且贝尔实验室的研究管理深信并令人信服地游说,支持基础研究的承诺是深远的并将继续。

在贝尔实验室,譬如物理、化学和数学这样的基础研究,可能真的是不可能发生的。然而,它可能面临的危险,和可能需要争论的情况,是它与公司的目标不相关。计算机科学研究与这些传统学科不同。哲学上来说,它与物理科学不同,是因为它并非寻求发现、解释或开拓自然世界,相反它研究人类创造的机器的属性。在这点上说它类似数学,并且计算机科学的“科学”部分真正地是,在极大程度上是数学精神。计算机科学一个不可避免的方面是创造计算机程序:尽管它是无形的,却可进行商业贸易。

与其它任何事情不同的是,在今天,对优秀的计算机科学研究来说风险更加大了,则是十分中肯的。有证据表明,随处可见在世界范围对计算机的着迷,从金融杂志上,甚至报纸的头版,到最有声望的大学经受的,留住计算机科学部门教员的困难。最好的教授不是教聪明的学生,而是加入了新兴公司,并发现他们最聪明的学生已抢在他们之前。计算机科学引人注目,尤其是那些方面,比如系统、语言和机器体系结构,那些可能有立即的商业应用。这些关注是美好的,但是可能损害良好的研究。

当特定领域的研究力度增强,会更加推动对它的成果的保密。这甚至在大学里也是真实的(Watson发现DNA结构的事实就是一个广为所知的例子),尽管在学术界有一股强烈的反压力:除非一个人发表著作,否则不可能出名。在工业界,制度的推动力是为了保护私有信息。研究者理解有关什么可以,和什么时候发表的合理的限制。但在别的地方,许多人会变得很生气和离开,或者开始在不那么棘手的领域工作,如果被阻止通过适当方式交流他们的发现和发明。贝尔实验室的研究管理在传统上,对于在公司利益和工业界的学术自由对等物间,保持一个谨慎的平衡非常敏感。AT&T进入计算机工业将考验,并可能损害这种平衡。

另一种危险是诸如此类的商业压力,会转移最优秀的思考者的注意力,从真正的创新到开发当前一时的利益,从探明矿藏到开采现有矿藏。这些压力不仅表现在从学术界消失了,但进入了工业界的人们身上,也表现在保守主义在这些方面,投入人力或财力进行的追赶。或者这种结果解释了,为什么大型计算机公司没能制造几个有趣的软件系统。甚至IBM,它支撑着一个有名和多产的组织,在近年在人们思考计算机的方式上,也没有产生一个微乎其微的革新。重要的新系统的一个可工作的例子,看起来或者来自企业努力(Visicalc是一个好例子),或者大公司,像贝尔实验室,和大部分与计算机关系密切的公司,尤其是施乐,提供对计算机的研究,但并不承认它们是其主营业务。

另一方面,在更小的公司,对研究最有力的支持,甚至高度依赖于市场环境。在纽约时报的一片文章描述了Alan Kay从Atari到Apple的经过,注意这个问题:“Kay先生…比如说Atari的实验室已经失去了,曾经吸引工业界天才的创新的气候”,“当我上月离开时,很清楚他们将把努力投入短期目标”他说…“我猜研究之树必须时不时地,被果实的血液更新”。

部分是因为他们是新的和不成熟的,部分是因为他们是天才的创造物,软件的艺术和科学削弱了,通常在物理和工程里的链,在基础发现、高级开发和应用之间。关于软件应该如何工作的思想的发明者,通常发现构建示例系统是必要的。对于大系统和个创新的思想,需要许多时间:可以说UNIX在70年代编写,提取了60年代最优秀的系统思想,在80年代变得变得平凡了。在施乐PARC个人计算机上的工作,位图和编程环境展示了类似的进展,开始并在几年后变成现实。对研究的长期价值,需要研究这和他们的管理层时间和承诺。

贝尔实验室给出了这项承诺并且更多:一个对我的同事们和我来说,罕见和特别激励的研究环境。当它进入公司宣称的“新的竞争时代”,它的管理者和工作者会努力工作并谨记,UNIX是如何以及在何种条件下成功的。如果我们能保持对新思想足够开明,交流足够自由,足够耐心以允许故事发展,它将有可能令,一个未来的Ken Thompson能找到一个没有使用的CRAY/I计算机并创造一个和UNIX一样具有创造性和影响力的系统。

参考

  1. Bell Labs: New order augurs well. Nature 305, 5933 (Sept. 29, 1983}.
  2. Bell Labs on the brink. Science 221 (Sept. 23, 1983}.
  3. Lesk, M. E. User-activated BTL directory assistance. Bell Laboratories internal memorandum {1972}.
  4. Norman, D. A. The truth about UNIX. Datamation 27, 12 (1981).
  5. Organick, E. I. The Multics System. MIT Press, Cambridge, MA, 1972.
  6. Ritchie, D. M. UNIX time-sharing system: A retrospective. Bell Syst. Tech. ]. 57, 6 {1978), 1947-1969..
  7. Ritchie, D. M. The evolution of the UNIX time-sharing system. In Language Design and Programming Methodology, Jeffrey M. Tobias, ed., Springer-Verlag, New York (1980).
  8. Ritchie, D. M. and Thompson, K. The UNIX time-sharing system. Commun. ACM 17, 7 (July 1974}, 365-375.
  9. Sanger, D. E. Key Atari scientist switches to Apple. The New York Times 133, 46, 033 {May 3, 1984).
  10. Thacker, C. P. et al. Alto, a personal computer, Xerox PARC Technical Report CSL-79-11.
  11. Thompson, K. UNIX time-sharing system: UNIX implementation. Bell Syst. Tech. ]. 57, 6 (1978}, 1931-1946.
  12. Watson, J. D. The Double Helix: A Personal Account of the Discovery of the Structure of DNA. Atheneum Publishers, New York (1968}.

分类和主题描述

C.5.2 [Computer System Implementation]: Minicomputers; D.4.0 [Software]: Operating Systems--general; K.6.1 [Management of Computing and Information Systems]: Project and People Management-- systems analysis and design

通用术语

Design

附加关键字和短语

Directory-assistance system, PDP-11


(This Chinese translation isn't confirmed by the author, and it isn't for profits.)

Translator : jhlicc@gmai1.c0m
Origin : http://awards.acm.org/turing/addl_info/articles/2898606.pdf