一 : C语言之父 Dennis M. Ritchie
Dennis M. Ritchie
Dennis M. Ritchie 或称(Dennis; D.M.Ritchie)其人图片链接:http://www.redhat.com/mirrors/LDP/linuxfocus/common/images/DennisRitchie.gif摘要:
Dennis M. Ritchie 是 C 语言及 Unix 操作系统的开发者之一。(www.61k.com)Dennis M. Ritchie 其人
许多重要人物之所以成名,或者是因为其改变了历史或者是因为其创造了历史,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。Dennis M. Ritchie访谈纪实:
==访谈纪实(开始.Begin)================================================================ 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 目前存在那些限制或者说是障碍?扩展:c语言之父 / dennis ritchie / guy ritchie
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吗?如果用过的话,你对它的看法如何? Dennis:事实上我还没有真正的使用过它。如果把我日常的计算都搬到它上面来,这在我看来说恐怕是不能接受的。我本人的计算世界是个由 Plan 9、Windows 及 Inferno 构成的奇怪组合。我非常欣赏 Linux 的生气和活力。时常有人问我一个非常相似的问题,仿佛是为了等着我对 Linux 与 Unix 之间由商业公司挑起的版权及商标争端表示我的愤怒或嫉妒。但是我一点也没有这种感觉,相反我认为二者都是 Ken 和我还有其他人多年前那些思想的延续。 LF:谈到微软公司……你怎么看待该公司现在对于桌面计算机系统的垄断?在过去的科幻电影描述里,我们可以看到一个世界完全由庞大的计算机来主宰,它制定了人们生活的所有规则。而眼前的现实由给我们显示了一个完全不同的图象。计算机逐渐由倍受景仰演变成为一个简单的工具。作为一个系统开发员,一个科幻爱好者,你一定设想过现实计算机系统的形势。那么,你对计算机系统的将来有什么设想呢?你认为 Inferno 和 Linux 在将来会处于一个什么样的位置呢? Dennis:这是两个很好的问题。微软公司确实在桌面计算机系统领域实行了垄断。但是,这并不能代表所有的计算机系统领域。这两种提供软件的方式(如 Linux)以及那些没有象 Windows 或浏览器之战那样多的介入新闻的东西(如,非常高效的计算机系统,非常可靠的计算机系统,非常细小的计算机系统)会有他们自己的位置的。我相信 Linux 和 Inferno 都会繁荣起来的。 ==访谈纪实(结束.End)==================================================================外篇:Unix时代的开创者Ken Thompson
自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一界有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师。 Ken Thompson,1943年出生于美国新奥尔良。1960年,Ken进入加州大学伯克利分校主修电气工程。1965年从伯克利毕业后,又花了一年的时间在该校取得了电子工程硕士的学位。不知道是时代造就英雄,还是英雄顺应时代而生,在Ken读书期间,正好赶上了计算机时代蓬勃发展的起步阶段,自小喜欢电气的Ken接触到计算机后,立即完全沉迷了进去,从1962年的开始,他就在学校的计算机中心找到份工作,专门负责程序的编写。这也为其后他一手开创的Unix时代奠定了良好基础。 1966年离开校园的Ken加入了贝尔实验室。那时的计算机系统还是批处理的天下,程序员只能在又慢又笨重大型机上工作,一般来讲是先将程序卡片装入设备,然后再等1个小时再过来取回运算的结果,其效率之低可想而知。应市场的需要,当时贝尔实验室与麻省理工学院以及通用电气公司联合开发了一个多用户分时操作系统,取名为Multics(多路信息计算系统),Ken当时就是这个系统的开发人员之一,在开发Multics的期间,Ken创造出了名为Bon的编程语言。可惜因为这个系统不但开发周期长,成本高,而且庞大而缓慢,市场前景完全不被看好,最后贝尔实验室从这个项目中撤了出来。这对于Ken而言,简直是个巨大的不幸,因为他自己用写的一个“star travel”游戏就是完全基于Multics的,退出Multics项目意味着Ken将没有机器可以再玩这个游戏了。 面对此情此景,Ken作为一个创造者的本性立即体现了出来,于是他决定自己写一个操作系统来满足他玩游戏的需要,说干就干,Ken找到了一台废弃已久的老式PDP-7,并在这台机器上重写了他的游戏。在这个过程中,Ken有了一个主意,要开发一个全新的操作系统。利用PDP-7上的汇编语言,Ken只花了一个月就编写完了操作系统的内核,在这个一个月中,他一周一个内核,一个文件系统,一个编辑器和一个编译程序的完成。做完这个系统后,Ken将其命名为UNiplexed Information and Computing System,缩写为 UNICS,后来做了一下改动,称为UNIX,在开发第一版Unix的过程中,Ken还开发出一种新的语言,即C语言的前身——B语言,这种语言简洁明了,接近于硬件语言,第一版的Unix就是基于B语言来开发的。 Unix的出现开始虽然并不为大家所看好,但是却引起了贝尔实验室另一位同事的注意,这就是Dennis M. Ritchie,于是Dennis主动加入了进来共同完善这个系统。至此一场轰轰烈烈的Unix的传奇时代才真正的拉开了序幕。1972年,他们联手将Unix移植到当时最先进的大型机PDP-2上,由于Unix是如此的简洁、稳定与高效,以至于当时大家都放弃了PDP-2上自带的DEC操作系统,而完全改用Unix,这时的Unix已经开始走向成熟了。在1973年之前Unix还不太为外界所知,到同年10月,Unix在IBM举办的操作系统原理专题研讨会上被提及,当Ken和Dennis在会上宣读论文并展示Unix后,整个会场轰动了,大家都立即涌上来索取这种新型的操作系统的程序。随着Unix的需求量的日益增加,Ken与Dennis决定将Unix进一步改写,以便可以移植到各种不同的硬件系统,由于Unix的原码中不少是用汇编完成,不具备良好的移植性,正好Dennis在1973年在B语言的基础上开发出了C语言,C语言灵活,高效性,与硬件无关,并且不失其简洁性,正是Unix移植所需要的法宝,于是旧版的Unix与C语言完美结合在一起产生了新的可移植的Unix系统。随着Unix的广泛使用,C语言也成为了当时最受欢迎的编程语言一直到延续至令。 说到Unix与C语言,还有一段小故事,当时安装了Unix的PDP-11被放在贝尔实验室供大家使用,有一天大家伙发现Ken总是可以得到最高的权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简单是太不能容忍了,于是有若干高人跳了出来,仔细分析Unix代码,找到后门,修改后再重新编译整个Unix,当所有人都以为这个世界应该从此清静了的时候,却发现Ken还是很容易就取得了他们的帐户权限,为此大家郁闷不已。至到很多年后,Ken才道出其中的原委,原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里,每次编译器编译时就会自动加入后门代码,而当时整个贝尔实验室都用的是Ken所写的C编译器。 由于Unix与C语言的深远影响,1983年美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的Ken与Dennis,并在当年还决定新设立一个奖项――软件系统奖,以奖励那些优秀的软件开发者,当然首个软件系统奖也是非他们两人莫属了。 虽然Unix与C语言让Ken与Dennis功成名就,但是他们两人都没有走那些IT史上自己创业的通用套路,而是一直留在贝尔实验室从事其喜爱的软件开发工作。到了2000年12月时,Ken正式退休,离开了工作了几十年的贝尔实验室开始享受他晚年的时光,但是Ken怎么能闲得下来呢,于是他干脆将他的另一个爱好:飞机,变成正式的职业,成为了一名专职的飞行员。至此,他所开创的Unix时代已经完全与他无关了。扩展:c语言之父 / dennis ritchie / guy ritchie
扩展:c语言之父 / dennis ritchie / guy ritchie
二 : 有没有 Dennis Ritchie 的传记?
[dennis ritchie]有没有 Dennis Ritchie 的传记?网友黄继新对[dennis ritchie]有没有 Dennis Ritchie 的传记?给出的答复:
貌似没有。但未来肯定会有人写他的。
不过,哪位知友有心的话,可以翻译一下 Ritchie 的生平和故事,发到知乎上来。:)
网友方顺中对[dennis ritchie]有没有 Dennis Ritchie 的传记?给出的答复:
没有看到呢.
毕竟他只在一个小圈子里有名.
如果没有自传的话,也不会有谁
去给他立传吧.
网友秦吉祥对[dennis ritchie]有没有 Dennis Ritchie 的传记?给出的答复:
好像现在还没有,缅怀他!
61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1