论文部分内容阅读
当史蒂夫·乔布斯辞世后,无数人为之恸哭,十分感人。但是,丹尼斯·里奇却有着更大的影响,而公众甚至不知道他是谁。他是C语言之父,Unix之父。
丹尼斯·里奇是C语言之父,他与贝尔实验室的同事肯·汤普森一起运用C语言构架了Unix——这是一个在世界上被广泛使用的操作系统——包括史蒂夫·乔布斯的“苹果帝国”也是构架在这上面的。
作为一门编程语言,C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C语言的存在而得以快速落地生根,两者相辅相成,成就了软件史上最精彩的一幕。
1967年,里奇参与的第一个项目是Multics,这是一个操作系统项目,被设计在大型计算机主机上运行,但是最终以失败而告终。Multics项目的开发者之一肯·汤普逊则继续为GE-5开发软件,并最终编写了一个新操作系统,能够同时支持多用户操作,也就是后来的Unix。
不可思议的是,当初Unix这个操作系统的诞生并不是为了推向市场,甚至不是为了让更多人使用,仅仅是作者为了方便自己使用,而且初衷是为了能更流畅地玩游戏。连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。
在Unix研发成功后不久,安装了这一程序的PDP-11被放在贝尔实验室供大家使用。同事发现两位创始人总是可以得到最高的权限轻松进入他们的账户,于是,大家仔细分析Unix代码,找到后门,修改后再重新编译整个Unix程序。当所有人都以为事件解决的时候,却发现他们的账户权限还是很容易泄露。直到很多年后,汤普逊和里奇才道出其中的原委——原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里。
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的,在移植的过程中遇到不少麻烦。早在对Multics项目调整过程中,就迫切需要一门高级计算机语言做工具。为了解决程序的可移植性问题,肯·汤普逊和丹尼斯·里奇决定对它进行简单改进,形成“New B”语言。但New B在Unix的移植方面依然不尽人意,此后里奇又对New B语言做了改进,C语言诞生。
这被计算机界认为是一个划时代的动作,C语言让Unix能够轻易地被移植到各种不同的机器上,为Unix的迅速普及立下汗马功劳。
1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的汤普逊与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix操作系统”。并且,美国计算机协会当年还决定新设立一个奖项——软件系统奖,以奖励那些优秀的软件开发者,首个软件系统奖当然也是非里奇和汤普逊两人莫属。1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。
虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。里奇本人,在从事的领域辛勤而低调地耕耘近40年。
由于C语言的简洁和高效,它也成为入侵他人电脑的利器之一。里奇因此被诸多电脑黑客尊为导师,虽然里奇本人并不认可这一说法。
几乎网络上的一切都会用到两样东西:C语言和Unix。网络浏览器是用C语言编写的;Windows操作系统也曾用C语言编写;Unix核心——几乎整个互联网都是根据它而运行——也是用C语言编写的;网络服务器是用C语言编写的,如果不是,那么也一定是用Java或者C++语言来编制的……可以这么说,所有的网络硬件运行的程序都是用C语言来编写的!
乔布斯是可视世界的国王,而里奇则是隐形世界的统治者。
丹尼斯·里奇是C语言之父,他与贝尔实验室的同事肯·汤普森一起运用C语言构架了Unix——这是一个在世界上被广泛使用的操作系统——包括史蒂夫·乔布斯的“苹果帝国”也是构架在这上面的。
作为一门编程语言,C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C语言的存在而得以快速落地生根,两者相辅相成,成就了软件史上最精彩的一幕。
1967年,里奇参与的第一个项目是Multics,这是一个操作系统项目,被设计在大型计算机主机上运行,但是最终以失败而告终。Multics项目的开发者之一肯·汤普逊则继续为GE-5开发软件,并最终编写了一个新操作系统,能够同时支持多用户操作,也就是后来的Unix。
不可思议的是,当初Unix这个操作系统的诞生并不是为了推向市场,甚至不是为了让更多人使用,仅仅是作者为了方便自己使用,而且初衷是为了能更流畅地玩游戏。连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。
在Unix研发成功后不久,安装了这一程序的PDP-11被放在贝尔实验室供大家使用。同事发现两位创始人总是可以得到最高的权限轻松进入他们的账户,于是,大家仔细分析Unix代码,找到后门,修改后再重新编译整个Unix程序。当所有人都以为事件解决的时候,却发现他们的账户权限还是很容易泄露。直到很多年后,汤普逊和里奇才道出其中的原委——原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里。
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的,在移植的过程中遇到不少麻烦。早在对Multics项目调整过程中,就迫切需要一门高级计算机语言做工具。为了解决程序的可移植性问题,肯·汤普逊和丹尼斯·里奇决定对它进行简单改进,形成“New B”语言。但New B在Unix的移植方面依然不尽人意,此后里奇又对New B语言做了改进,C语言诞生。
这被计算机界认为是一个划时代的动作,C语言让Unix能够轻易地被移植到各种不同的机器上,为Unix的迅速普及立下汗马功劳。
1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的汤普逊与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix操作系统”。并且,美国计算机协会当年还决定新设立一个奖项——软件系统奖,以奖励那些优秀的软件开发者,首个软件系统奖当然也是非里奇和汤普逊两人莫属。1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。
虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。里奇本人,在从事的领域辛勤而低调地耕耘近40年。
由于C语言的简洁和高效,它也成为入侵他人电脑的利器之一。里奇因此被诸多电脑黑客尊为导师,虽然里奇本人并不认可这一说法。
几乎网络上的一切都会用到两样东西:C语言和Unix。网络浏览器是用C语言编写的;Windows操作系统也曾用C语言编写;Unix核心——几乎整个互联网都是根据它而运行——也是用C语言编写的;网络服务器是用C语言编写的,如果不是,那么也一定是用Java或者C++语言来编制的……可以这么说,所有的网络硬件运行的程序都是用C语言来编写的!
乔布斯是可视世界的国王,而里奇则是隐形世界的统治者。