1983 年,美國計算機協(xié)會將圖靈獎授予肯·湯普森和與丹尼斯·里奇。
獲獎理由是:“For their development of generic operating systems theory and specifically for the implementation of the UNIX operating system.”
翻譯過來就是:
“授予肯·湯普森和與丹尼斯·里奇圖靈獎,以表彰其在通用操作系統(tǒng)理論領(lǐng)域的貢獻(xiàn),特別是UNIX操作系統(tǒng)的開發(fā)與實現(xiàn)。”
老讀者知道,老K每次裝逼都會引用一段英文,不過這次不是要顯擺自己,而是要介紹本文的主人公,肯·湯普森。
在許多讀者都還沒出生的年代,他就已經(jīng)取得了計算機界的最高榮譽--圖靈獎。
01
計算機天才養(yǎng)成記
肯·湯普森出生于1943年。在他小學(xué)的時候,有一堂課講到了二進(jìn)制,喜歡邏輯的他立刻被吸引住了,在興趣的驅(qū)使下,他做了很多相關(guān)的二進(jìn)制計算,并借助一臺十進(jìn)制計算器將其擴(kuò)展到各種進(jìn)制。
其實,老K小時候也有類似的經(jīng)歷,我上初中的時候?qū)ξ锢矸浅V裕茉缇烷_始研究,牛頓的頭發(fā)是在哪燙的?我想,我的物理老師,就是從那個時候開始有心理陰影的。
肯·湯普森,從小就是妥妥的學(xué)霸一枚,邊玩邊學(xué),輕松考上了加州大學(xué)伯克利分校,攻讀電子工程學(xué)士學(xué)位。
雖然,國外的大學(xué)不像國內(nèi)這么輕松,隨便放飛自我。但是,對于肯·湯普森這樣的大神來說,課程so easy,哪里不會點哪里。
于是他迷上了一個新玩意:計算機。
每天晚上,趁著沒人的時候,他就偷偷溜進(jìn)機房,自學(xué)了編程,編寫游戲、玩游戲,嗨到不行。
大四那年,大神心里還是有點B Tree的,因為覺得自己不務(wù)正業(yè),都在玩游戲和編程,電子工程沒怎么好好學(xué),所以沒有申請讀研究生。
正當(dāng)他準(zhǔn)備卷鋪蓋畢業(yè)的時候。一位教過他的老師Berlekamp教授替他申請了研究生,并且通過了,多好的教授啊!
回想起老K大學(xué)時候的教授,我的論文改了八回,答辯兩次才勉強畢業(yè)。同樣都是教授,怎么差別就這么大呢?當(dāng)然了,同樣是學(xué)生,差別就是這么大。
在研究生階段,肯·湯普森只用了一年就畢業(yè)了,你沒看錯,他只用了一年就拿到了電子工程和計算機科學(xué)的碩士學(xué)位。
02
加入貝爾實驗室
研究生畢業(yè)后,肯·湯普森的才華驚動了當(dāng)時大名鼎鼎的貝爾實驗室,并且向他伸出來橄欖枝。但是,肯·湯普森卻看不上,他心想我這么年輕,有才華,又有頭發(fā),應(yīng)該有機會改變世界的。
但是,在貝爾實驗室的再三邀請之下,他還是勉強答應(yīng)去參觀一下。
這一參觀不要緊啊,他發(fā)現(xiàn)漢明碼發(fā)明人、信息論發(fā)明人、晶體管發(fā)明人......這些牛逼閃閃的人物,都出自貝爾實驗室。
肯·湯普森心想,像我這樣的天才不就應(yīng)該來這里嗎?于是他接受了貝爾實驗室的Offer。
03
搞砸“Multics操作系統(tǒng)”項目
1966 年,肯·湯普森加入貝爾實驗室,與丹尼斯·里奇(就是文章開頭,一同獲得圖靈獎的另一位大神)一起參與名為 “Multics操作系統(tǒng)”的項目開發(fā)。
那個時代的計算機系統(tǒng)還處在批處理的階段,只能在既慢又笨重的大型機器上工作,要先將程序卡片裝入設(shè)備,然后等1個小時后才能取運算的結(jié)果。不僅慢,還很廢紙。
因此,貝爾實驗室聯(lián)合麻省理工學(xué)院,以及通用電氣公司,想建立一套可以多人使用、多任務(wù)、多層次的 Multics 操作系統(tǒng)。
但是,由于大家太過追求完美,導(dǎo)致開發(fā)周期過長,成本高,短期內(nèi)看不到產(chǎn)出。論敏捷交付的思想的重要性啊,可惜那個年代大家并不那么想。
1969 年的時候,貝爾實驗室忍無可忍,決定退出這個項目。
對于程序員來說,搞砸一個項目是很稀松平常的事情,就像老K這10幾年的職場生涯搞垮過的項目,都可以寫出“搞垮系列”了。
但是讓肯·湯普森失望的是,再也不能玩自己寫的名為“star travel”的游戲了,因為這個游戲完全是基于 Multics 的。你看看大神,玩游戲才是主業(yè),上班只是兼職而已。
04
為了玩游戲,開發(fā)了UNIX
既然這樣,那就自己開發(fā)個操作系統(tǒng)吧,這樣就可以繼續(xù)玩游戲了。
有技術(shù)就是任性啊,一言不合就開發(fā)個操作系統(tǒng)。所以千萬不要把程序員逼急了,他們連操作系統(tǒng)都能做,還有什么事情做不出來?
肯·湯普森找到了一臺廢棄已久的老式 PDP-7小型機,雖然稱為小型機,那時候也有一個房間那么大!在這臺機器上他首先重寫了游戲,游戲有了后,肯·湯普森還想著要開發(fā)一個全新的操作系統(tǒng)。
正好這個時候,他的老婆帶著孩子回娘家住3個禮拜,也就是說他有完整的3個禮拜沒有人打擾的時間。
于是他決定利用這段時間開發(fā)操作系統(tǒng),基于之前搞砸“Multics系統(tǒng)”的經(jīng)驗,他很快完成了內(nèi)核系統(tǒng)、文件系統(tǒng)、編輯器、編譯系統(tǒng),一個月時間竟然編寫完了操作系統(tǒng)的內(nèi)核。
這個故事告訴我們,一個男人想要搞大事,老婆不在家是多么的重要!K嫂你看到了嗎?看到了嗎?老K這把年紀(jì)一事無成,是有原因的。一天查崗八回,就算你是王者,也榮耀不起來啊?
話說這個系統(tǒng)做完后,肯·湯普森將其命名為 UNiplexed Information and Computing System,縮寫為 UNICS 。但是怎么念都拗口,后來改名為UNIX,陸續(xù)做了一些改動后,第一版UNIX操作系統(tǒng)誕生了。
那一年,肯·湯普森年僅26歲。
05
UNIX 跟C語言更配
1973 年的 10 月,在 IBM 舉辦的操作系統(tǒng)原理專題研討會上 ,UNIX首次向世界問好,當(dāng)肯·湯普森和與丹尼斯·里奇向人們宣讀論文并展示了UNIX后,整個會場轟動了,人們驚呼:臥槽,牛逼,還能這么玩!
后來隨著UNIX的用戶越來越多,肯·湯普森和與丹尼斯·里奇決定將UNIX進(jìn)一步改寫,以便可以移植到各種不同的硬件系統(tǒng)。
由于UNIX的源碼中不少是用匯編完成,不具備良好的移植性,正好丹尼斯·里奇在 1973 年在 B 語言的基礎(chǔ)上開發(fā)出了 C 語言。C 語言靈活,也更高效,與硬件無關(guān),并且不失其簡潔性,正是UNIX移植所需要的法寶。
于是舊版的UNIX與 C 語言完美結(jié)合在一起,產(chǎn)生了新的可移植的UNIX系統(tǒng)。隨著UNIX的廣泛使用,C 語言也成為了當(dāng)時最受歡迎的編程語言,一直延續(xù)至今。
UNIX經(jīng)典的設(shè)計哲學(xué)KISS,就是在那個時候被提出來的——Keep It Simple, Stupid。
06
黑客與“后門”
肯·湯普森還有一個備受爭議的行為,就是在UNIX里留后門。是的,這哥們竟然在代碼里下毒。
最開始的時候,UNIX系統(tǒng)在貝爾實驗室是供大家免費使用的。有人發(fā)現(xiàn),肯·湯普森總能進(jìn)入每個人的賬戶,于是一位同事就分析UNIX代碼,重新編譯了系統(tǒng)。
令人意想不到的是,肯·湯普森還是能進(jìn)入他們的賬戶,貝爾實驗室的科學(xué)家們卻對此束手無策。
直到1983年,肯·湯普森在他的圖靈獎獲獎感言里揭示了這一秘密,原來,讓他輕松“侵入”各位同事賬戶的秘訣不在UNIX代碼,而在編譯UNIX代碼的C編譯器里,而肯·湯普森正是編譯器的開發(fā)者。這個操作666,你以為看透了大神,可你就是玩不過他。
那位頭發(fā)比他多,胡子跟他一樣長的自由軟件之父、著名黑客--理查德·斯托爾曼,曾這樣定義過黑客,一名黑客必須包含三個特點:好玩、高智商、探索精神,而且三項必須同時滿足。
黑客追求的不是實用性技術(shù)或金錢。老K作為一名技術(shù)從業(yè)者,經(jīng)過多年的努力,我已經(jīng)滿足了黑客精神的其中一點:好玩。當(dāng)然了,主要是被別人玩。
自由軟件之父 理查德·斯托爾曼
或許從這個角度,更能理解肯·湯普森的行為,他并非違背了道德準(zhǔn)則,對他來說這個事就是一逗樂。不難發(fā)現(xiàn),黑客的價值觀跟德云社還挺配的。
07
加盟Google,參與Golang語言開發(fā)
2000年,57歲的肯·湯普森在貝爾實驗室退休。是的,這哥們的整個職場生涯都是在貝爾實驗室度過的,期間有幾年去了大學(xué)教UNIX系統(tǒng)課程。
然而,退休后這位老爺子也閑不住。
2006 年,肯·湯普森加入了 Google 公司。看看吧,誰說程序員做到35歲以后就找不到工作?關(guān)鍵還是技術(shù)過硬,別做了10幾年技術(shù)還是寫CRUD。玩技術(shù)的要么越鉆越底層,要么就高屋建瓴搞架構(gòu),千萬別原地踏步。
加入谷歌后,肯·湯普森又搞了一件大事。
他跟其它優(yōu)秀的科學(xué)家一起開發(fā)了Go語言,也就是Golang。主要開發(fā)者有:肯.湯姆遜(Ken Thompson)、羅布.派克(Rob Pike)和羅伯特.格里澤默(Robert Griesemer)。另外兩位也是大神,有機會再仔細(xì)寫寫。
Go語言不用多介紹了,有人形容Go語言:Go = C + Python , 說明Go語言既有C靜態(tài)語言程序的運行速度,又能達(dá)到Python動態(tài)語言的快速開發(fā)。
國內(nèi)不少科技公司都是Go的擁護(hù)者。比如七牛云的CEO許式偉,就是國內(nèi)較早一批Go的使用者,他還出版了《Go語言編程》一書。
08
寫最騷的代碼,開最酷的飛機
肯·湯普森并沒有像許多技術(shù)大神那樣,走上技術(shù)創(chuàng)業(yè)的道路,成就更大的商業(yè)夢想。
他在貝爾實驗室、谷歌,一直從事自己熱愛的開發(fā)工作。
除了寫程序之外,肯·湯普森是一位狂熱的飛行愛好者,并且還獲得了飛行執(zhí)照。
閑暇之余,他會跟同事們一起自駕,來一場說走就走的飛行。你不用羨慕大神的生活,其實你也可以擁有,但首先你得有架飛機。
沒有飛機也不用沮喪,說不定哪天,你用滴滴打飛機,就能叫到他。
你以為大神光是開私人飛機就完事了?肯·湯普森就算是愛好也要玩到極致。
1992年他特意到莫斯科,玩了一把米格29戰(zhàn)斗機。不想開戰(zhàn)斗機的飛行員不是好騎手。有錢、有閑、有膽,就這么任性,你有辦法嗎?
09
結(jié)語
肯·湯普森,對計算機軟件業(yè)的發(fā)展,貢獻(xiàn)是巨大的。不僅是UNIX系統(tǒng)發(fā)明人,在他的職業(yè)生涯里還開發(fā)了B程序語言(C語言的前身),UTF-8編碼,ed文本編輯器,以及參與開發(fā)了Go程序語言。
除了獲得圖靈獎之外,他還先后獲得了多項至高榮譽:
1994年,他獲得了IEEE(電氣和電子工程師協(xié)會)計算機學(xué)會先鋒獎。
1998年,被授予美國國家科技獎?wù)隆?/p>
1997年,入選計算機歷史博物館名人錄。
......
最后,以作家羅蘭的一句名言與你共勉:“成功的意義應(yīng)該是發(fā)揮了自己的所長,盡了自己的努力之后,所感到的一種無愧于心的收獲之樂,而不是為了虛榮心或金錢。”
原文標(biāo)題:他是世界上最杰出程序員之一,1 個月寫了個操作系統(tǒng),退休后去做飛行員!
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
計算機
+關(guān)注
關(guān)注
19文章
7540瀏覽量
88646 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6896瀏覽量
123753 -
代碼
+關(guān)注
關(guān)注
30文章
4828瀏覽量
69057
原文標(biāo)題:他是世界上最杰出程序員之一,1 個月寫了個操作系統(tǒng),退休后去做飛行員!
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論