“C语言之父”也是“黑客之父”
由于C语言和Unix两项成就,里奇成为许多编程爱好者膜拜的对象。里奇在1978年出版的《C程序设计语言》被程序员们称为“白皮书”,获得狂热拥戴。
然而,由于C语言的简洁和高效,也成为入侵他人电脑的利器之一。里奇因此被诸多电脑黑客尊为导师,虽然里奇本人并不认可这一说法。
在Unix研发成功后不久,安装了这一程序的PDP-11被放在贝尔实验室供大家使用。有一天,大家发现两位创始人总是可以得到最高的权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简直是太不能容忍的事情了。于是,若干愤懑的同事仔细分析Unix代码,找到后门,修改后再重新编译整个Unix程序。当所有人都以为这个世界应该从此清静了的时候,却发现他们的帐户权限还是很容易泄露。直到很多年后,肯和里奇才道出其中的原委——原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里。
为玩游戏研成C语言
作为一门伟大的编程语言,C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C语言的存在而得以快速落地生根,两者相辅相成,成就了软件史上最精彩的一幕。
不可思议的是,当初Unix这个操作系统的诞生,并不是为了推向市场,甚至不是为了让更多人使用,而仅仅是作者为了方便自己使用,而且初衷是为了能更流畅地玩游戏。连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。
1967年,里奇参与的第一个项目是Multics,这是一个操作系统项目,被设计在大型计算机主机上运行,但是由于整个目标过于庞大,糅合了太多的特性,Multics的性能很低,最终以失败而告终。Multics项目的开发者之一肯·汤普逊则继续为GE-5开发软件,并最终编写了一个新操作系统项目,能够支持同时的多用户操作,也就是后来的Unix。
在不经意间,奇迹诞生了,由于Unix诸多优点,人们将它称为软件中的瑞士军刀。这再一次验证了IT业的创新往往是兴趣,而不是大把大把的金钱使然。
最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的,在移植的过程中遇到不少麻烦。早在对Multics项目调整过程中,就迫切需要一门高级计算机语言做工具,为了解决程序的可移植性问题,肯·汤普逊和丹尼斯·里奇决定对它进行简单改进,形成NB语言。但NB在Unix的移植方面依然不尽人意,此后里奇又对NB语言做了改进,C语言诞生。
这被计算机界认为是一个划时代的动作,C语言让Unix能够轻易地被移植到各种不同的机器上,为Unix的迅速普及立下汗马功劳。“C语言之父”也是“黑客之父”