肯·汤普森出生于1943年。在他小学的时候,有一堂课讲到了二进制,喜欢逻辑的他立刻被吸引住了,在兴趣的驱使下,他做了很多相关的二进制计算,并借助一台十进制计算器将其扩展到各种进制。

肯·汤普森,从小就是妥妥的学霸一枚,边玩边学,轻松考上了加州大学伯克利分校,攻读电子工程学士学位。虽然,国外的大学不像国内这么轻松,随便放飞自我。但是,对于肯·汤普森这样的大神来说,课程so easy!于是他迷上了一个新玩意:计算机。

每天晚上,趁着没人的时候,他就偷偷溜进机房,自学了编程,编写游戏、玩游戏,嗨到不行。

大四那年,因为觉得自己不务正业,都在玩游戏和编程,电子工程没怎么好好学,所以没有申请读研究生。正当他毕业的时候,一位教过他的老师Berlekamp教授替他申请了研究生,并且通过了!

在研究生阶段,肯·汤普森只用了一年就毕业了,你没看错,他只用了一年就拿到了电子工程和计算机科学的硕士学位。


加入贝尔实验室

研究生毕业后,肯·汤普森的才华惊动了当时大名鼎鼎的贝尔实验室,并且向他伸出来橄榄枝。但是,肯·汤普森却看不上,他心想我这么年轻,有才华,又有头发,应该有机会改变世界的。

计算机天才养成记-肯·汤普森

但是,在贝尔实验室的再三邀请之下,他还是勉强答应去参观一下。这一参观不要紧啊,他发现汉明码发明人、信息论发明人、晶体管发明人……这些牛逼闪闪的人物,都出自贝尔实验室。

肯·汤普森心想,像我这样的天才不就应该来这里吗?于是他接受了贝尔实验室的Offer。


搞砸 “Multics操作系统”项目

1966 年,肯·汤普森加入贝尔实验室,与丹尼斯·里奇(就是文章开头,一同获得图灵奖的另一位大神)一起参与名为 “Multics操作系统”的项目开发。

那个时代的计算机系统还处在批处理的阶段,只能在既慢又笨重的大型机器上工作,要先将程序卡片装入设备,然后等1个小时后才能取运算的结果。不仅慢,还很废纸。

因此,贝尔实验室联合麻省理工学院,以及通用电气公司,想建立一套可以多人使用、多任务、多层次的 Multics 操作系统。

但是,由于大家太过追求完美,导致开发周期过长,成本高,短期内看不到产出。论敏捷交付的思想的重要性啊,可惜那个年代大家并不那么想。

1969 年的时候,贝尔实验室忍无可忍,决定退出这个项目。

是让肯·汤普森失望的是,再也不能玩自己写的名为“star travel”的游戏了,因为这个游戏完全是基于 Multics 的。


为了玩游戏,开发了UNIX

既然这样,那就自己开发个操作系统吧,这样就可以继续玩游戏了。

有技术就是任性啊,一言不合就开发个操作系统。所以千万不要把程序员逼急了,他们连操作系统都能做,还有什么事情做不出来?

肯·汤普森找到了一台废弃已久的老式 PDP-7小型机,虽然称为小型机,那时候也有一个房间那么大!在这台机器上他首先重写了游戏,游戏有了后,肯·汤普森还想着要开发一个全新的操作系统。

基于之前搞砸“Multics系统”的经验,他很快完成了内核系统、文件系统、编辑器、编译系统,一个月时间竟然编写完了操作系统的内核。

计算机天才养成记-肯·汤普森

话说这个系统做完后,肯·汤普森将其命名为 UNiplexed Information and Computing System,缩写为 UNICS 。但是怎么念都拗口,后来改名为UNIX,陆续做了一些改动后,第一版UNIX操作系统诞生了。

那一年,肯·汤普森年仅26岁。


UNIX 跟C语言更配

1973 年的 10 月,在 IBM 举办的操作系统原理专题研讨会上 ,UNIX首次向世界问好,当肯·汤普森和与丹尼斯·里奇向人们宣读论文并展示了UNIX后,整个会场轰动了,人们惊呼:卧槽,牛逼,还能这么玩!

后来随着UNIX的用户越来越多,肯·汤普森和与丹尼斯·里奇决定将UNIX进一步改写,以便可以移植到各种不同的硬件系统。

由于UNIX的源码中不少是用汇编完成,不具备良好的移植性,正好丹尼斯·里奇在 1973 年在 B 语言的基础上开发出了 C 语言。C 语言灵活,也更高效,与硬件无关,并且不失其简洁性,正是UNIX移植所需要的法宝。

于是旧版的UNIX与 C 语言完美结合在一起,产生了新的可移植的UNIX系统。随着UNIX的广泛使用,C 语言也成为了当时最受欢迎的编程语言,一直延续至今。

UNIX经典的设计哲学KISS,就是在那个时候被提出来的——Keep It Simple, Stupid。


黑客与“后门”

肯·汤普森还有一个备受争议的行为,就是在UNIX里留后门。

最开始的时候,UNIX系统在贝尔实验室是供大家免费使用的。有人发现,肯·汤普森总能进入每个人的账户,于是一位同事就分析UNIX代码,重新编译了系统。令人意想不到的是,肯·汤普森还是能进入他们的账户,贝尔实验室的科学家们却对此束手无策。

直到1983年,肯·汤普森在他的图灵奖获奖感言里揭示了这一秘密,原来,让他轻松“侵入”各位同事账户的秘诀不在UNIX代码,而在编译UNIX代码的C编译器里,而肯·汤普森正是编译器的开发者。这个操作666,你以为看透了大神,可你就是玩不过他。


加盟Google,参与Golang语言开发

2000年,57岁的肯·汤普森在贝尔实验室退休。是的,这哥们的整个职场生涯都是在贝尔实验室度过的,期间有几年去了大学教UNIX系统课程。

然而,退休后这位老爷子也闲不住。2006 年,肯·汤普森加入了 Google 公司。看看吧,谁说程序员做到35岁以后就找不到工作?关键还是技术过硬。

加入谷歌后,肯·汤普森又搞了一件大事。

他跟其它优秀的科学家一起开发了Go语言,也就是Golang。主要开发者有:肯.汤姆逊(Ken Thompson)、罗布.派克(Rob Pike)和罗伯特.格里泽默(Robert Griesemer)。

Go语言不用多介绍了,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。


肯·汤普森,对计算机软件业的发展,贡献是巨大的。不仅是UNIX系统发明人,在他的职业生涯里还开发了B程序语言(C语言的前身),UTF-8编码,ed文本编辑器,以及参与开发了Go程序语言。

1983 年,美国计算机协会将图灵奖授予肯·汤普森和与丹尼斯·里奇。以表彰其在通用操作系统理论领域的贡献,特别是UNIX操作系统的开发与实现。”

1994年,他获得了IEEE(电气和电子工程师协会)计算机学会先锋奖。

1998年,被授予美国国家科技奖章。

1997年,入选计算机历史博物馆名人录。


本站内容未经许可,禁止任何网站及个人进行转载。