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