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

咱們都知道,一我的若是可以被冠名以某某之父,都一定有過人之處。而今天介紹的 Unix 之父,就更是如此。他至少有如下幾項成就聞名於世html

首先,他發明了 Unix 系統,能夠簡單地講,在這以後的全部操做系統,都或多或少受到 Unix 操做系統的影響。以致於影響其後全部程序員的工做方式。雖然咱們過後知道這是一個很是重大的發明,但它的誕生之初,卻僅僅是一些意外,爲何這麼說呢?且聽我慢慢道來linux

Ken 當時所在的貝爾實驗室,本來要開發 Multics 系統項目,但後來貝爾實驗室退出了計劃。這樣 Ken 就比較閒了,這時候,正值盛夏,妻子和孩子都回孃家去了。所以,他得到了一段意外的獨處假期。湊巧貝爾實驗室有一臺閒置的 PDP-7 機器,Ken 以前在貝爾實驗室的開發 Multics 時候,業餘時間在實現一款"Space Travel"的遊戲,但如今大型機沒有了,只有一臺老爺機 PDP-7,Ken 想要把以前寫的差很少的 "Space Travel" 移植過來,但性能徹底不行。這麼着,Ken 就打算本身實現一個系統,而且立刻動手把它實現了。這就是咱們後面所熟知的 Unix 操做系統的最先版本。以後,Ken 發現把系統內核寫完了,遊戲仍是玩不起來,由於老爺機內存的限制,遊戲的文件系統每次操做都要卡半天,就像你玩遊戲的時候會有延遲,很是影響體驗。Ken 研究了一番,看着問題主要出在操做文件的時候會消耗過多的內存,因而便在一週內實現了文件系統,並在一個月內陸續實現了編輯器、編譯程序等程序員

Ken 完成這個帶着遊戲的操做系統來到了貝爾實驗室,同事們對他這個遊戲並不感冒,但卻對他這個操做系統興趣頗濃。後面你們發現他這個系統很是好用,因而便逐漸在貝爾實驗室應用起來。隨後,Unix 率先被被學術界發掘,並影響其後幾乎全部的操做系統。其中最被咱們熟知的,就是 Linux 操做系統正則表達式

除了發明 Unix 操做系統,他還設計了正則表達式和 UTF-8 編碼。他在實現 ed 編輯器的時候,就着手設計實現正則表達式,並在以後寫入到 Unix 系統中,以致於如今,幾乎全部的使用正則的程序,都用到了來自 Ken 記號的變體。1980 年代, Ken 投身於 Plan 9 (分佈式多用戶和圖形化的操做系統)的開發。並設計實現了 UTF-8 的編碼方案,極大地便利了這以後的互聯網字符編碼編程

最後,Ken 發明了 B 語言和做爲主要成員設計了 Go 語言。在完成了 Unix 系統的開發的基本工做後,Ken 以爲系統須要一個正式的編程語言,因而便創造了 B 語言。然後他的好搭檔 Dennis MacAlistair Ritchie 在此基礎上,創造了大名鼎鼎的 C 語言。能夠講,沒有 B 語言,就不會有 C 語言的輝煌。(PS:C 語言又被稱爲 NB,注意了,不是牛逼哈:-D,而是 New B 之意)。另外 Ken 和 Robert C. Pike 以及 Robert Griesemer 三人共同設計了 Go 語言。2009 年正式發佈,他可讓你在寫靜態語言的時候,有寫動態語言的感受。簡單而且優雅編程語言

從 Ken 的身上咱們發現,大師區別於二三流的人才,關鍵之處在於他們有遇到問題解決問題的積極態度。他在實現 "Space Travel" 的時候,實驗室的機器不給用了,他就使用閒置的 PDP-7;沒有系統內核,他就本身實現一個;文件系統慢,他就本身動手作一個;而且偶然地發明設計了 UTF-8 編碼和正則表達式。而相較於咱們不少人,在遇到問題的時候,大多處於抱怨或者等待的階段,久而久之就和牛人的差距越拉越大編輯器

另外,動手能力很是重要,MIT 的校訓是"腦與手"(Mens et Manus),就是要培養像 Ken 這樣的人。咱們都知道計算機是一個自底向上的系統,越往底層,設計的難度就越高。而 Ken 的過人之處在於,他不只絕頂聰明,並且腳踏實地,這也是爲何他可以在一個月以內就將 Unix 的第一版本寫出來,並獲得貝爾實驗室同僚的認同分佈式

這裏補充一個小插曲,就是當時 Unix 安裝在 PDP-11 供你們使用。有一天大夥兒發現這傢伙老是能夠獲得最高權限進入他們的帳戶。要知道,貝爾實驗室個個都不是等閒之輩,這還能忍?因而若干人花了大把精力仔細分析了 Unix 的代碼,找到後門,再從新編譯整個 Unix,就在你們以爲今後安靜美好的時候,卻發現這傢伙仍是像"狗皮膏藥"同樣,又輕鬆的取得了他們的帳戶權限。爲此你們鬱悶不已。直到多年後 Ken 才道出了其中的原委,原來代碼裏面確實存在後門,不過不在 Unix 源碼中,而是隱藏在編譯器裏,而且這個編譯器在每次編譯的時候,自動加上後門,不是這樣就完了,它還會智能地銷燬證據,致使幾乎不可能找到後門。這也是 Ken 給咱們的一個好的示例:計算機技術🐂🍺,就能夠隨心所欲嗎?,sorry,計算機技術牛啤,是真的能夠隨心所欲!!!用 Linux之父的話來講就是 👇👇👇性能

在電腦世界中,你就是創世者,你對所發生的一切擁有最終的控制。若是你功力深厚,你能夠是上帝――在一個較小的層面上。編碼

​ ----Linus Benedict Torvalds

但願 Ken 的故事對你有所啓發。最後,你以爲大師和日常人有哪些可見的差距?歡迎留言與我互動

參考資料

肯·湯普遜

樂者爲王

對Unix40歲的一些感想

Rob Pike's UTF-8 history

The Ken Thompson Hack

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

tail_qrcode.jpg
相關文章
相關標籤/搜索