Manuel Benet 关于作者: 本文作者目前就读于西班牙的维纶思工艺大学(Polytechnic University of Valence),主修计算机科学。他的大部分时间都是在那里度过的。 他喜爱与计算机体系结构有关的一切东西。自从五年前开始接触 Linux(或者说是Unix)以来,他对 Linux 的热情与日俱增。此外,他还喜欢听音乐、看歌剧和滑雪板运动。 目录: |
摘要:
Dennis M. Ritchie 是 C 语言及 Unix 操作系统的开发者之一。下面就是本文作者与这位大师之间的一次访谈。
许多重要人物之所以成名,或者是因为其改变了历史或者是因为其创造了历史,Dennis Ritchie 属于后者。当我们中的大多数人还在姗姗学步的时候,他就开发了“C”语言——这种最有效、最通用的编程语言。当然,这里不必再次强调这项成果给人类的带来巨大贡献。
然而,他的成就不仅仅是这些。Dennis Ritchie还和Ken Thompson一起开发了Unix操作系统,就是 OS。可以说:是他创造了UNIX。
他从来没有间断过在计算机及其操作系统方面的工作。也因此,他所领导的研究小组开发出了 Plan 9 和 Inferno。
他的工作得到了很多计算机组织的公认和表奖,如:美国计算机协会(ACM)授予的系统及语言杰出论文奖(1974);电气和电子工程师协会(IEEE)的 Emmanuel Piore 奖(1982);贝尔实验室特别人员奖(1983);美国计算机协会(ACM)的图灵奖(1983); NEC公司的 C&C 基金奖(1989);电气和电子工程师协会(IEEE)的优秀奖章(Hamming Medal)(1990), 等等。
目前,Dennis M. Ritchie 正担任贝尔实验室/朗讯科技公司(原AT&T实验室)下属的计算科学研究中心系统软件研究部的主任一职。该中心位于美国新泽西州的 Murray Hill。
LF:如同许多孩子对超人崇拜一样,全世界也有很多的 C 程序员和 UNIX 迷把你当成了他们的偶像。你能谈谈这种被众多人崇拜的感觉吗?根本无法想象如果这个时代没有了 UNIX 和 C 会变成怎样。当你在创造 C 和 UNIX 的时候,你想过它们将会成为计算机科学的“未来”吗?
Dennis:这两个问题非常相似也经常被问到。显然,我和我的合作者所取得的那些奖励都是很令人振奋的。我们也为能创造一些有真正价值的东西而感到高兴。但是,我们不认为这就是计算机科学的“未来”甚至根本就无法预见到这个学科的最终发展结果会是什么样子。本着“物有所用”的精神我们开始致力于这项研究开发工作,其间还做了一些帮助其他人加入进来的工作。有一点值得我们重视:尽管 Unix 和 C 或者 C++ 的程序是非常有效的,但不可否认的是计算机科学技术领域及其实际产品开发潜力仍然很巨大。这一方面反映在高校的编程语言研究方向上,另一方面也反映在商业软件领域。
LF: 如果 UNIX 被选做过去和当前的操作系统,那么尽管过去几年出现了一些面向对象的语言 C 也将毫无疑问的被认为是“唯一的语言”。你怎么看待 C++ 和 Java,以及 C 和 C++ 程序师之间在 UseNet 上经常发生的激烈争论呢?
C 被设计成为一种便携式汇编语言,对于这一特性人们褒贬不一。C++
则试图把编程方法提高到面向对象这种更抽象的层次上来。
|
Dennis:C++ 的很大一部分得宜于 C。因为 C 早在 C++ 出现之前就已经具有了非常好的兼容性,所以 C++ 才可以采用 C 作为建构自身的基础并使用它来开发自己的编译器。C 被设计成为一种便携式汇编语言,对于这一特性人们褒贬不一。C++ 则试图把编程方法提高到面向对象这种更抽象的层次上来。从最近形成的标准来看,二者共同的缺点是:带有过多的装饰和附属物。同样的,它们都采用了相同的编程思想,都试图按照真正的需求来编写代码。Java 显然是 C++ 的改进版本。它砍掉了 C 中的指针操作部分,引入了生成独立于机器的目标文件这种编程思想(虽然这个思想并不是很新的,但是也许直到现在它才真正可行了)。既然 Sun 和 Microsoft 公司(它的产品同样的有过多的装饰附件)已经把 Java 作为它们之间竞争的工具,谁也难以预料事态将象何处发展。
LF:这里有一个假想的问题:在经过了这么多年的 C 经验之后,如果从现在的角度出发让你重新设计 C 语言的话,你会有些不同的设想吗?
Dennis:很长时间以来,我一直在找一种能使多数人支持 ANSI/ISO 标准的办法(假定时间是有限制的)。就拿完善函数参数类型声明(在1989 C 标准中称作函数接口)这件事来说吧。有许多细节比它们看起来的还要杂乱得多。例如,对“static”这个词含义的理解会因不同的使用目的而混淆其用法。直到现在我还对有关语言声明的语法不太确定,在这些声明里面其语法结构总是模仿那些应用于变量声明的语法。虽然这一点引起了强烈的批评,但是应该说它还是有一定的逻辑的。
LF:虽然 C 是一种结构好、定义比较完备的语言,而操作系统却在不断的更新着。一些新的观念随着硬件速度的提高和价钱的降低而出现。你认为将来什么才有可能成为操作系统设计基础上的关键问题呢?特别的,对于微内核与单片机设计之间的对抗你有什么看法呢?
Dennis:我不认为这是一个有趣的论点,而且应该被摒弃。我更喜欢 Unix(包括 Linux)、Plan 9、Inferno 这个系列的操作系统,它们在其应用环境里提供了一种结构化、通用的命名空间和资源访问机制。在我看来微内核不会成为实际应用中的重点,至少不会作为多用途操作系统的基础。实际上,微内核正逐渐的趋向于专门为大型操作系统服务。它或许可以保留一些用于系统内部结构的有效工具,但它自己是不能独立存在的。当然了,世界这么复杂,有些情况下越是小型的操作系统反而越是有用,例如某些小的用途单一的设备装置就不可能采用那些桌面或者车间里使用的多用途操作系统。
LF:UNIX 是一个有着悠久历史的操作系统。从它多年前诞生的那一刻起至今,其在网络、硬件、服务及应用方面的兼容性和需求都发生了非常巨大的进展。面对现在和不远的将来用户的需求,你认为 UNIX 目前存在那些限制或者说是障碍?
Dennis:从基本的系统 API(“系统调用”)上来看,我认为没有什么基本原理或者技术上的限制。当然,只要 Unix 之间以及现在出现的各个“免费”Unix 供应商(包括Linux 和 BSD 在内)之间的竞争存在,大量的商业/政治的争论就会出现。
LF:最近,很多人都在关注着临近的 2000 年问题,担心因特网的发展会因为这个声明狼籍的“千年虫”而延缓下来。在这些专家的预言中,你觉得那些是比较有根据的呢?
Dennis:事实上,我认为关于这个问题还没有比较明智的解释。在1999年12月31日23:59这个时刻,我是不会在飞机上的。而实际上我这一生中从没有在新年里接近过飞机。看来我不必为这个“千年虫”而害怕乘坐飞机了。
LF:下面我想跟你谈谈你正开发的 Inferno 操作系统。你能说一说设计这种全新的操作系统及使用其自身编程语言——Limbo 的初衷吗?为什么不用已有的 JavaVM/Java 而用 Inferno/Limbo 呢?换言之,Inferno 能提供那些 Java 所没有的吗?
Dennis:Inferno 是由 Phil Winterbottom 和 Rob Pike 创造出来的。这项工作恰好开始于 Java 流行(公开其内核)之前。Java 在没有成型之前其前身被内部人士称作 Oak,而当时 Inferno 也还处于雏形阶段。尽管当时我们已经开始注意到 Java ,却没有想到它会象现在这样流行。我认为 Sun 公司和我们是殊途同归,最终都认识到这样了一项相同的技术——基于便携虚拟机来实现语言。Inferno 的思想源于对 OS 技术的有趣探索:是否能开发这样一种语言和操作系统——它既可以在各种硬件条件下运行,还可以在各种操作平台(包括 Windows、Unix 及 Linux)上对等的应用。与此同时,有人资助 Sun 公司进军迅速壮大的 WWW 及浏览器市场,在此过程中他们也认识到了这项技术。
LF:在我们看来,Limbo 编程语言的未来要依赖于 Inferno 这个操作系统的普及和发展。不知道是否有意将 Limbo 移植到其它操作系统上?还是说它就是专门为 Inferno 设计的而不能移植呢?
Dennis:就技术方面讲,Limbo 不是必须依赖 Inferno 的。而在实际上它还是要依赖 Inferno 的。最简单的一个原因就是,一种新的语言必须依赖于它习惯了的应用环境。
LF:回顾一下你在贝尔实验室的工作,你看起来每时每刻都在做着自己真正喜欢的项目。我可不可以假设你也是出于同样的喜欢 Inferno 才致力于它的开发呢?我断言:你真正热爱 UNIX 和 C 的设计工作,是不是这样呢?
Dennis:我确实喜欢我在贝尔实验室的工作(而且还将继续下去)。
LF:不可避免的我要把你和所有正致力于那些非赢利(或者说是免费)项目的人们做个比较。这些人之所以这么做只是因为他们喜欢这样。当然如果有人因此而付给他们报酬,我可以确定的说他们是不会拒绝的。如果不是在贝尔实验室工作的话,你会不会也投入到类似于 Linux 的项目中来呢?这些从事于免费项目的人大多来自于很有创新的实验室并具有丰富 UNIX 及 C 经验的人,你是如何看待他们的呢?既然我们这个杂志主要是针对 Linux 用户的,我就不免要问你一些关于 Linux 的问题。第一个问题是:很多公司做出决定开始开发 Linux 下的软件(包括贝尔实验室的 Inferno 也有了与 Linux 的接口),你是如何看待 Linux 的全部动力及上述现象的呢?
Dennis:我把这些问题放到一起来回答。我认为 Linux 现象是非常让人高兴的事情。因为它强烈的震撼了 Unix 提供的基础。尽管还有象 BSD 这样的不但品种多而且还得到了工作站及大型机制造商支持的 Unix 存在,而 Linux 看起来才是最健康的 Unix 派生系统之一。当然,还有一种现象不得不引起我的关注。那就是这个源于 Unix 的“免费资源”世界也正在陷入分裂和竞争之中。而这中分裂和竞争的现象是一直存在于商界的。
LF:还有一个关于 Linux 的大问题:你用过 Linux吗?如果用过的话,你对它的看法如何?
我非常欣赏 Linux 的生气和活力。
|
Dennis:事实上我还没有真正的使用过它。如果把我日常的计算都搬到它上面来,这在我看来说恐怕是不能接受的。我本人的计算世界是个由 Plan 9、Windows 及 Inferno 构成的奇怪组合。我非常欣赏 Linux 的生气和活力。时常有人问我一个非常相似的问题,仿佛是为了等着我对 Linux 与 Unix 之间由商业公司挑起的版权及商标争端表示我的愤怒或嫉妒。但是我一点也没有这种感觉,相反我认为二者都是 Ken 和我还有其他人多年前那些思想的延续。
LF:谈到微软公司……你怎么看待该公司现在对于桌面计算机系统的垄断?在过去的科幻电影描述里,我们可以看到一个世界完全由庞大的计算机来主宰,它制定了人们生活的所有规则。而眼前的现实由给我们显示了一个完全不同的图象。计算机逐渐由倍受景仰演变成为一个简单的工具。作为一个系统开发员,一个科幻爱好者,你一定设想过现实计算机系统的形势。那么,你对计算机系统的将来有什么设想呢?你认为 Inferno 和 Linux 在将来会处于一个什么样的位置呢?
Dennis:这是两个很好的问题。微软公司确实在桌面计算机系统领域实行了垄断。但是,这并不能代表所有的计算机系统领域。这两种提供软件的方式(如 Linux)以及那些没有象 Windows 或浏览器之战那样多的介入新闻的东西(如,非常高效的计算机系统,非常可靠的计算机系统,非常细小的计算机系统)会有他们自己的位置的。我相信 Linux 和 Inferno 都会繁荣起来的。
主页由
LinuxFocus 编辑组维护 (C) Manuel Benet LinuxFocus 1999 |