本文摘录洞源实验室对知乎同名问题的回答:https://www.zhihu.com/question/615637344/answer/93671166049
肯·汤普森(Kenneth Lane Thompson,1943年2月4日—)
美国计算机科学学者和工程师,黑客文化圈子通常称他为“ken”。在贝尔实验室工作期间,汤普逊设计和实现了Unix操作系统。他创造了B语言——C语言的前身,而且他是Plan 9操作系统的创造者和开发者之一。2006年,汤普逊进入Google公司工作,与他人共同设计了Go语言。他与丹尼斯·里奇同为1983年图灵奖得主。
1964年,由贝尔实验室、麻省理工学院及美国通用电气公司曾共同参与研发一个叫Multics的操作系统,并安装在大型主机上,1969年,因MULTICS项目的工作进度过于缓慢,最后终究遭裁撤的命运,贝尔实验室由此退出此项目。
贝尔实验室参与Multics项目的项目组成员之后得找其他事来做。肯·汤普森还是想做操作系统,但实验室管理层被Multics伤透了心,不肯给操作系统项目买硬件。肯和其他人只能纸上谈兵,设计操作系统的各种组件,无法开展具体的实现工作。
恰在此时,肯找到一台没怎么用过的DEC PDP-7计算机。这种计算机的主要功能是做电路设计的输入设备。这台机器本身不算很强大,只有8K(8192)个18位字长的内存(16 KB),但其图形显示非常漂亮。PDP-7还有一个好玩的外设——磁盘驱动器高耸,磁盘运转速度远高于计算机读写速度。为了解决这个古怪的问题,肯写了个磁盘调度算法来提升磁盘的总吞吐量。这个算法在任意磁盘上都可用,但主要是为PDP-7的这块磁盘设计的。
如何测试这个算法呢?这需要往磁盘上装载数据,肯认为他需要一个批量写数据的程序。
“在某一时刻,我发现离实现一个操作系统仅有3周之遥了。”他需要写三个程序,每周写一个:用来创建代码的编辑器;将代码转换为PDP-7能运行的机器语言的汇编器;再加上“内核的外层——操作系统齐活了”。
正在那时,肯的太太休了3周假,带着一岁大的儿子去加利福尼亚探望公婆,这样肯就有了3周不受打扰的工作时间。正如他在2019年一次采访中所说,“一周,一周,再一周,我们就有了Unix。”无论以何种方式来度量,这都体现了真正的软件生产力。
1969年年中至年末,Unix诞生了。
1983年,肯.汤普森和丹尼斯.里奇(Dennis Ritchie,1941年9月9日—2011年10月12日,C语言的创造者)获得图灵奖,肯在颁奖中发表了一篇演讲《Reflections on Trusting Trust》,中文名称可以叫《关于信任的思考》(原文见原文链接)。
在文章中,肯提出了一个概念性的问题,C语言的编译器是用C语言编写的,那么用C语言编写一个新的编译器就可以让C语言学会新的语言特性,而这个特性可以是恶意的,比如木马(Trojan Horse),并用修改后的编译器代码演示如何利用这个特性植入木马。
因此,他提出了一个非常严肃的忠告:
越是底层的源代码,类似的问题越是难以察觉。
肯.汤普森的这篇演讲是最早关于软件漏洞、供应链安全的思考,除此之外,他还进一步批评了媒体将诸如414帮(20世纪80年代美国的黑客组织,帮派名称源于他们入侵时使用的密尔沃基地区区号 414)美化为神童,这会误导他们认为侵入计算机系统是英雄行为,但这种行为无异于侵入邻居家,无论邻居家的房门有没有上锁,都是犯罪行为,迟早都会面临法律的制裁,误导计算机的使用无异于是引导人们酒后驾车。
从技术和道德两个维度,肯的这次分享都具有非常深远的影响和意义,他也无愧是最顶级的黑客。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...