首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

26 岁创造 UNIX,退休后却成为一名飞行员

肯·汤普森,图源:维基百科

UNIX 之父、图灵奖得主、C 语言的前身 B 语言的开发者、操作系统 Plan 9 的主要作者、Belle(一个国际象棋程序)作者之一,这些成就都出自一人之手,编程史上从来不缺大人物,但是肯·汤普逊(一般称之为 Ken Thompson,肯·汤普森)绝对是一个传奇。

在《编程人生》一书的访谈中,肯·汤普森曾回忆:“小学时受到的教育很烂,但唯独一堂课讲了二进制,从此我便被迷住,因为从小就喜欢逻辑,因此做了很多二进制的运算,甚至还借助一台十进制计算器扩展到各种进制。”

汤普森 1943 年出生在美国新奥尔良。1960 年,就读于加州大学伯克利分校主修电气工程,并取得电子工程硕士学位。当时,他的论文导师是埃尔温·伯利坎普,同样也是一位传奇人物。

埃尔温·伯利坎普的博士导师是香农、Gallager 等大师,他发明了 Berlekamp 、Welch-Berlekamp 和 Berlekamp-Massey 等著名算法,还花了不少时间研究围棋等博弈游戏,他是组合博弈论的创始人之一。

埃尔温·伯利坎普,图源:维基百科

1966 年,毕业后的汤普森被贝尔实验室聘用。他跟丹尼斯·里奇(C语言创始人)在 Multics 操作系统上工作。那时候,计算机还处在批处理的阶段,技术不够发达,程序员的工作效率不高,他们只能在既慢又笨重的大型机器上工作。为了解决一系列问题,Multics 操作系统应运而生,它是由美国高级研究计划局资助、由麻省理工学院、贝尔实验室和通用电气公司的研究人员共同开发的分时操作系统。

可是好景不长,因为开发周期过长、成本过高,1969 年贝尔实验室决定撤出这个项目。令汤普森最不开心的是他曾为 Multics 写过一个游戏《太空旅行》,这下也玩不了了。

为了继续玩游戏,汤普森找到了一台旧的 PDP-7 计算机,他重新编写了这个游戏,还花了一个月的时间开发了全新的操作系统 UNiplexed Information and Computing System(UNICS),后来改称为 UNIX。

UNIX 首次运行在 DEC PDP-7 上,图源:维基百科

在 UNIX 的开发过程中,汤普森决定 UNIX 需要一种系统编程语言。于是他开发了 B 语言,也就是 C 语言的前身。B 语言在进行系统编程时不够强大,所以 1973 年丹尼斯·里奇用 C 语言重写了 UNIX,安装在 PDP-11 计算机上。随着后来 UNIX 的广泛使用,C 语言也成为了当时最受欢迎的编程语言延续至今。

坐着的肯·汤普森与丹尼斯·里奇一起在 PDP-11 旁工作,图源:维基百科

1980 年,汤普森与贝尔实验室的另一位工程师约瑟夫·康登开发了一款硬件辅助程序 Belle,一个会下国际象棋的计算机。同年,汤普森当选为美国国家科学院和美国国家工程院院士。

1990年代带有液晶显示屏的压感国际象棋计算机,图源:维基百科

1983 年,汤普森被贝尔实验室任命为研究员。他还协助丹尼斯·里奇在贝尔实验室创建了 Plan 9 和 Inferno 操作系统。这一年,美国计算机协会将图灵奖授予肯·汤普森和丹尼斯·里奇。

肯·汤普森与丹尼斯·里奇(右),图源:维基百科

2000 年底,汤普森从贝尔实验室退休了,他成为了一名飞行员。在编程的世界里遨游半生,也想去真正的天空看看了。

如果你以为他的传奇生涯就这么结束了,那就太天真了。

2006 年,他又加入了 Google 公司,参与设计 Go 语言。当提到他与其他 Go 语言的原始作者时,他说:“当我们三个人(Thompson,Rob Pike 和 Robert Griesemer )准备开始开发 Go 的时候,纯粹是为了研究。我们一起讨厌 C ++。(笑声)回到 Go,我们开始的想法是,对于语言的每个功能都要碰头交流,因此不管什么原因,我们都不会在语言中添加多余的垃圾。”

罗伯特·格瑞史莫,罗勃·派克和肯·汤普森,图源:谷歌

他认为优秀开发人员的标志是热情,虽然他是编程狂魔,但是他却不建议自己的儿子去读计算机,理由竟然是计算机发展太慢了。大佬果然是大佬。现在已经 77 岁的汤普森依然在编程路上不断探索,我们又怎么能停下脚步呢?

今天是 2 月 4 日,是肯·汤普森的生日,在这里我们要祝愿大佬生日快乐。同样,今天也是立春的日子,一年的初始,也希望小伙伴们能保持初心,迎接新一年的工作和学习。

图书推荐:

从零开始编写一个五脏俱全的图形操作系统

《30天自制操作系统》

作者:川合秀实

译者:周自恒,李黎明 等

这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C 语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30 天后就可以制作出一个具有窗口系统的 32 位多任务操作系统。

Linux命令行圣经

《Linux命令行与shell脚本编程大全》

作者:Richard Blum等

译者:门佳,武海峰

和所有“大全”系列图书一样,这本书涵盖了详尽的动手教程和实践信息,还提供了与所学内容相关的参考信息和背景资料。它是关于 Linux 命令行和 shell 命令的相当全面的资源。读完之后,你将可以轻松写出自己的 shell 脚本来实现 Linux 系统任务自动化处理。

101个shell经典实例,拿来即用

《shell脚本实战(第2版)》

作者:戴夫•泰勒,布兰登•佩里

译者:门佳

本书极为实用,通过对 101 个 shell 脚本实例及其核心内容的讲解,展示如何在实际工作中利用 shell 脚本解决各种常见问题。涉及的主要内容有:简化 shell 脚本的工具和技巧,用户命令改进,UNIX 调校,用户管理,系统维护,网络资源处理,网站管理,Internet 服务器管理,OS X 脚本,云服务相关脚本,图像处理。

比教材更易懂的C语言入门书

《明解C语言:入门篇》

作者:柴田望洋

译者:管杰,罗勇,杜晓静

本书对 C 语言的基础知识进行了彻底剖析,内容涉及数组、函数、指针、文件操作等。对于 C 语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰、通俗地进行讲解。原著在日本广受欢迎,始终位于网上书店 C 语言著作排行榜首位。

无数程序员推荐的C语言力作

《C语言程序设计现代方法》

作者:K.N.King

译者:吕秀锋 黄倩

本书最大特色是通过一种“现代方法”来介绍 C 语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99 标准,并与 C89 标准进行对照,补充了 C99 中的最新特性。本书分为 C 语言的基础特性、 C 语言的高级特性、 C 语言标准库和参考资料 4 个部分。每章末尾都有一个“问与答”小节给出一系列与该章内容相关的问题及答案。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200217A0A8WF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券