Unix之父——一個上帝視角的存在

我們都知道,一個人如果能夠被冠名以某某之父,都必定有過人之處。而今天介紹的 Unix 之父,就更是如此。它至少有以下幾項成就聞名于世

首先,它發(fā)明了 Unix 系統(tǒng),可以簡單地講,在這之后的所有操作系統(tǒng),都或多或少受到 Unix 操作系統(tǒng)的影響。以至于影響其后所有程序員的工作方式。雖然我們事后知道這是一個非常重大的發(fā)明,但它的誕生之初,卻僅僅是一些意外,為什么這么說呢?且聽我慢慢道來

Ken 當時所在的貝爾實驗室,原本要開發(fā) Multics 系統(tǒng)項目,但后來貝爾實驗室退出了計劃。這樣 Ken 就比較閑了,這時候,正值盛夏,妻子和孩子都回娘家去了。因此,他獲得了一段意外的獨處假期。湊巧貝爾實驗室有一臺閑置的 PDP-7 機器,Ken 之前在貝爾實驗室的開發(fā) Multics 時候,業(yè)余時間在實現(xiàn)一款"Space Travel"的游戲,但現(xiàn)在大型機沒有了,只有一臺老爺機 PDP-7,Ken 想要把之前寫的差不多的 "Space Travel" 移植過來,但性能完全不行。這么著,Ken 就打算自己實現(xiàn)一個系統(tǒng),并且馬上動手把它實現(xiàn)了。這就是我們后面所熟知的 Unix 操作系統(tǒng)的最早版本。之后,Ken 發(fā)現(xiàn)把系統(tǒng)內核寫完了,游戲還是玩不起來,因為老爺機內存的限制,游戲的文件系統(tǒng)每次操作都要卡半天,就像你玩游戲的時候會有延遲,非常影響體驗。Ken 研究了一番,看著問題主要出在操作文件的時候會消耗過多的內存,于是便在一周內實現(xiàn)了文件系統(tǒng),并在一個月內陸續(xù)實現(xiàn)了編輯器、編譯程序等

bg2009061103.jpg

Ken 完成這個帶著游戲的操作系統(tǒng)來到了貝爾實驗室,同事們對他這個游戲并不感冒,但卻對他這個操作系統(tǒng)興趣頗濃。后面大家發(fā)現(xiàn)它這個系統(tǒng)非常好用,于是便逐漸在貝爾實驗室應用起來。隨后,Unix 率先被被學術界發(fā)掘,并影響其后幾乎所有的操作系統(tǒng)。其中最被我們熟知的,就是 Linux 操作系統(tǒng)

除了發(fā)明 Unix 操作系統(tǒng),他還設計了正則表達式和 UTF-8 編碼。他在實現(xiàn) ed 編輯器的時候,就著手設計實現(xiàn)正則表達式,并在之后寫入到 Unix 系統(tǒng)中,以至于現(xiàn)在,幾乎所有的使用正則的程序,都用到了來自 Ken 記號的變體。1980 年代, Ken 投身于 Plan 9 (分布式多用戶和圖形化的操作系統(tǒng))的開發(fā)。并設計實現(xiàn)了 UTF-8 的編碼方案,極大地便利了這之后的互聯(lián)網(wǎng)字符編碼

最后,Ken 發(fā)明了 B 語言和作為主要成員設計了 Go 語言。在完成了 Unix 系統(tǒng)的開發(fā)的基本工作后,Ken 覺得系統(tǒng)需要一個正式的編程語言,于是便創(chuàng)造了 B 語言。而后他的好搭檔 Dennis MacAlistair Ritchie 在此基礎上,創(chuàng)造了大名鼎鼎的 C 語言??梢灾v,沒有 B 語言,就不會有 C 語言的輝煌。(PS:C 語言又被稱為 NB,注意了,不是牛逼哈:-D,而是 New B 之意)。另外 Ken 和 Robert C. Pike 以及 Robert Griesemer 三人共同設計了 Go 語言。2009 年正式發(fā)布,他可以讓你在寫靜態(tài)語言的時候,有寫動態(tài)語言的感覺。簡單并且優(yōu)雅

image-20190324161802739.png

從 Ken 的身上我們發(fā)現(xiàn),大師區(qū)別于二三流的人才,關鍵之處在于他們有遇到問題解決問題的積極態(tài)度。他在實現(xiàn) "Space Travel" 的時候,實驗室的機器不給用了,他就使用閑置的 PDP-7;沒有系統(tǒng)內核,他就自己實現(xiàn)一個;文件系統(tǒng)慢,他就自己動手做一個;并且偶然地發(fā)明設計了 UTF-8 編碼和正則表達式。而相較于我們很多人,在遇到問題的時候,大多處于抱怨或者等待的階段,長此以往就和牛人的差距越拉越大

另外,動手能力非常重要,MIT 的校訓是"腦與手"(Mens et Manus),就是要培養(yǎng)像 Ken 這樣的人。我們都知道計算機是一個自底向上的系統(tǒng),越往底層,設計的難度就越高。而 Ken 的過人之處在于,他不僅絕頂聰明,而且腳踏實地,這也是為什么他能夠在一個月之內就將 Unix 的初版本寫出來,并得到貝爾實驗室同僚的認同

這里補充一個小插曲,就是當時 Unix 安裝在 PDP-11 供大家使用。有一天大伙兒發(fā)現(xiàn)這家伙總是可以得到最高權限進入他們的賬戶。要知道,貝爾實驗室個個都不是等閑之輩,這還能忍?于是若干人花了大把精力仔細分析了 Unix 的代碼,找到后門,再重新編譯整個 Unix,就在大家覺得從此安靜美好的時候,卻發(fā)現(xiàn)這家伙還是像"狗皮膏藥"一樣,又輕松的取得了他們的賬戶權限。為此大家郁悶不已。直到多年后 Ken 才道出了其中的原委,原來代碼里面確實存在后門,不過不在 Unix 源碼中,而是隱藏在編譯器里,并且這個編譯器在每次編譯的時候,自動加上后門,不是這樣就完了,它還會智能地銷毀證據(jù),導致幾乎不可能找到后門。這也是 Ken 給我們的一個好的示例:計算機技術????,就可以為所欲為嗎?,sorry,計算機技術牛啤,是真的可以為所欲為!?。∮?Linux之父的話來說就是 ??????

在電腦世界中,你就是創(chuàng)世者,你對所發(fā)生的一切擁有最終的控制。如果你功力深厚,你可以是上帝――在一個較小的層面上。

----Linus Benedict Torvalds

希望 Ken 的故事對你有所啟發(fā)。最后,你覺得大師和平常人有哪些可見的差距?歡迎留言與我互動

參考資料

肯·湯普遜

樂者為王

對Unix40歲的一些感想

Rob Pike's UTF-8 history

The Ken Thompson Hack

歷史上的今天:1943年Unix之父Ken Thompson誕生

image
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容