世上最杰出程序员,B语言Unix之

作者

年素清责编

伍杏玲出品

程序人生(ID:coder_life)Unix之父——肯?汤普森(KenThompson)被称作“世界上最杰出的程序员”,他自学编程,6岁创造Unix,改写了计算机操作系统的历史,并在古稀之年成为Go语言的共同开发者之一。笔者通过本文带你了解这位Unix之父的传奇一生。喜欢逻辑学,自学编程年,汤普森出生在美国新奥尔良。上小学时,有一堂课讲二进制,喜欢逻辑的他立即被迷住了,他做了很多二进制运算,还借助一台十进制计算器扩展到各种进制。进入中学阶段,汤普森又迷上了电子器件,他曾自己制作无线电、示波器和放大器。年,汤普森考入加州大学柏克莱分校,攻读电气工程专业。大二时,他接触到模拟计算机。他在上面做了很多相关的二进制计算,但他嫌解释程序太慢,不能直接用汇编编程。在暑假里,他想方设法弄到了解释程序的源代码清单,在不懂程序语言的情况下,仔细研读,终于学会了编程,并在学校找到编程的工作。年本科毕业,汤普森留校。有个教授为他申请了硕士,师从 的信息论和博弈论专家埃尔温?伯利坎普(ElwynBerlekamp)。伯利坎普问他为什么学编程时,汤普森说:“因为我从小喜欢逻辑学。”据汤普森回忆,他读硕期间,大部分都是靠自学。从入学到硕士毕业,汤普森仅仅用了一年的时间。为了玩游戏,动手设计操作系统年,汤普森加入贝尔实验室。年,汤普森参与了贝尔实验室与麻省理工学院、通用电气公司联合开发的一个多用户分时操作系统,取名为Multics(多路信息计算系统)。一年后,贝尔实验室认为Multics系统周期长、成本高、前景不佳,便决定撤出。汤普森非常失落,他自己写的一款叫做“startravel”的游戏就是完全基于Multics的,退出Multics项目意味着他将没有机器可以玩这个游戏了。于是汤普森决定自己设计一个操作系统来玩游戏,他本来打算向实验室申请在DEC-10上写,然而没有申请到,只能找到了一台废弃已久的老式PDP-7小型机,虽然称为小型机,也有一个房间大。汤普森先在这台机器上重写了游戏,接着他用一周时间设计出操作系统的内核,再用一周时间创造出文件系统,一周时间写编辑器,一周时间写编译程序,最终在一个月内编写完了整个操作系统。汤普森将其命名为UNICS(UNiplexedInformationandComputingSystem)。后面陆续做了一些改动和优化,便有了 版UNIX操作系统。这一年,汤普森年仅6岁。共获图灵奖Unix的诞生在贝尔实验室并没有惊起多大的波澜,只有一位叫做丹尼斯?里奇(DennisM.Ritchie)的同事对它表现出了不小的兴趣,主动请求加入进来共同完善这个系统。年,汤普森与里奇共同将Unix移植到了当时 的大型机PDP-上。由于Unix的简洁、稳定与高效,大家纷纷放弃了PDP-上自带的DEC操作系统,完全改用Unix。尽管此时的Unix在两人的努力下趋于完善,但外界不为所知。3年10月,在IBM举办的操作系统原理专题研讨会上,汤普森与里奇宣读了相关的论文并展示了Unix,整个会场为之轰动,大家都立即涌上来索取这种新型的操作系统的程序。随后,业界对Unix的需求日益增加,两人决定将Unix进一步改写,以便可以将它移植到各种不同的硬件系统。最终,他们将Unix与C语言完美地结合在一起,产生了新的可移植的Unix系统。正式推出后,改写了计算机的历史。鉴于Unix的诸多优点,人们将它称为是软件界的“瑞士*刀”。一位贝尔高级主管形容Unix是继晶体管以后的第二个最重要发明。两位发明者谦虚地说:“就其受公众瞩目程度而言,Unix确实是一项重要的开发”。由于Unix深远影响,年美国计算机协会将当年的图灵奖破例颁给了汤普森与里奇,并在当年新设立了一个奖项――ACMSoftwareSystemAward(软件系统奖),主要颁发给开发出具有长远影响力软件系统的机构或个人,而汤普森与里奇则成了首届获奖者。惨淡的职业生涯年代,汤普森与C++语言之父BjarneStroustrup、图灵奖获得者之一BrianKernighan等几位计算机大佬合作,为朗讯公司开发Plan9操作系统,该项目的初衷是希望能够开发出取代Unix的新一代分布式多用户和图形化的操作系统,在年、5年先后发布了两个正式版本。但此时Linux异*突起,很快抢夺了市场,Plan9的发展也受到了限制。0年代后期,朗讯公司不得不取消了Plan9项目。不久之后,朗讯又启动了Inferno操作系统研究项目,汤普森再次参与其中。7年,发布了Inferno 版,并用在了朗讯的两个产品之中,为此公司还成立了专门的业务部门。然而,此时互联网悄然兴起,Sun公司开发的Java开始占据主流市场。因为失败的营销和运营模式,Inferno并没有在互联网大潮中占得一席之地,三年后,Inferno惨淡收场,知识产权被出售给英国公司Vitanuova。Go语言的共同创造者年9月,汤普森以 工程师的身份加入Google,与之前在贝尔实验室时的老同事罗布?派克(RobPike),一起为Google设计基础设施。他的工作内容主要涉及操作系统方面。他在《编程人生》一书中所说,虽然他对Google大规模海量用户的计算环境以及相关的制度还不太适应,他还没有资格提交代码,但他总体上还是很喜欢这里的工作。年11月,汤普森与派克一起公布了他们的工作的 个成果——Go语言,这是一款带垃圾收集、编译型的并发系统语言,一经问世便引起了广大的


转载请注明:http://www.xxcyfilter.com/cxrs/cxrs/11284.html