《UNIX傳奇》布萊恩·W.克尼漢+epub+mobi

副標題: 歷史與回憶

原作名: UNIX: A History and a Memoir

內容簡介

自1969年在貝爾實驗室的閣樓上誕生以來,Unix作業系統的發展遠遠超出其創造者們的想象。它帶動了許多創新軟體的開發,影響了無數程式設計師,改變了整個計算機技術的發展軌跡。

本書不但書寫Unix的歷史,而且記錄作者的回憶,一探Unix的起源,試圖解釋什麼是Unix,Unix是如何產生的,以及Unix為何如此重要。除此之外,本書以輕鬆的口吻講述了一群在貝爾實驗室工作的發明天才的有趣往事,探秘他們如何從傳說中走出來,就地顯現極客真面目。本書中每一個精彩故事都是鮮為人知卻又值得傳播的寶貴資源。

本書是為對計算機或相關歷史感興趣的人編寫的,雖然它包括一部分技術相關的資料,但讀者不需要有太多的專業技術背景,就可以欣賞Unix背後的思想,瞭解它的重要性。

作者簡介

布萊恩·W。克尼漢(Brian W。 Kernighan)是《C程式設計語言》和《UNIX程式設計環境》等10多部計算機著作的合著者。他曾在貝爾實驗室計算科學研究中心Unix開發組工作超過30年,見證了Unix的誕生。

譯者韓磊,是IT產品與運營專家、IT圖書專業譯者,譯有 《程式碼整潔之道》《夢斷程式碼》《C#程式設計風格》等多部計算機圖書。他曾擔任CSDN副總經理、《程式設計師》總編輯、廣東二十一世紀傳媒股份有限公司新媒體事業部總經理等職,現任AR初創企業亮風臺廣州公司總經理。

目錄

第1章 貝爾實驗室 001

1。1 貝爾實驗室的物理科學研究 005

1。2 通訊與計算機科學 007

1。3 結緣貝爾實驗室 008

1。4 辦公空間 013

1。5 137→127→1127→11276 023

第2章 Unix雛形(1969) 031

2。1 一點點技術背景知識 031

2。2 CTSS和Multics 035

2。3 Unix起源 038

2。4 何以命名 041

2。5 肯·湯普森小傳 042

第3章 初版(1971) 051

3。1 用作專利申請文件工具的Unix 053

II UNIX 傳奇:歷史與回憶

3。2 Unix房間 056

3。3 Unix程式設計師手冊 064

3。4 儲存略談 065

3。5 丹尼斯·裡奇小傳 068

第4章 第6版(1975) 073

4。1 檔案系統 074

4。2 系統呼叫 076

4。3 shell 079

4。4 管道 082

4。5 grep命令 086

4。6 正則表示式 092

4。7 C語言 094

4。8 軟體工具和Ratfor 100

4。9 道格·邁克羅伊小傳 103

第5章 第7版(1976—1979) 109

5。1 伯恩的shell 110

5。2 Yacc,Lex,Make 113

5。3 文件編制 124

5。4 Sed和Awk 141

5。5 其他語言 147

5。6 其他貢獻 152

第6章 科研中心之外的傳播 163

6。1 程式設計師工作臺 164

6。2 高校授權 168

6。3 使用者組和Usenix 170

6。4 約翰·萊昂斯的評註 172

6。5 可移植性 175

第7章 商業化 179

7。1 剝離 179

7。2 USL和SVR4 181

7。3 UNIXTM 183

7。4 公共關係 186

第8章 派生物 191

8。1 伯克利軟體發行版 192

8。2 Unix戰爭 194

8。3 Minix和Linux 196

8。4Plan 9 200

8。5流散 203

第9章遺產 207

9。1技術方面 208

9。2 組織 213

9。3 認可 220

9。4歷史能重演嗎 222

資料來源 227

書評

貝爾實驗室寬鬆而英明的科研管理體制

拿到這本書以後,用了兩天時間看完了全書。這本書以回憶錄的形式寫了Unix的早起發展過程。文筆清新,娓娓道來,作者是unix開發的親歷者,他從自己的親身經歷中總結了很多Unix成功的很多原因。但是,其中讓我尤其感慨的是貝爾實驗室的科研管理體制。

Unix系統之所以能開發成功,得歸功於貝爾實驗室的寬鬆而英明的科研管理體制。

貝爾實驗室用自己雄厚的實力吸引來了一大批優秀的技術人才,給了這些技術人才一個非常寬鬆的工作環境。比爾實驗室允許他們的員工自由選擇自己的專業領域,這讓這些技術天才們能夠在自己感興趣的領域工作,將自己的才能和興趣完美結合。作者寫道“慣例如此:把你介紹給其他人,讓你隨意晃盪,去尋找自己的研究課題和協作者”,“貝爾實驗室向來缺乏明確的管理層指示”。

管理層有很好的技術能力和技術鑑別能力,也就保證有前途的科技成果會脫穎而出。作者也寫道“因為管理層在晉升過程中保持了技術能力,而且都有基層經歷。整個系統看起來並不偏重於理論或者實踐”,貝爾實驗室的管理層自己在升職的過程中保持了技術能力,管理層有非常好的技術判斷力和技術品味,能夠鑑別出真正有價值的工作,所以,就避免了外行指導內行的悲劇,也就不會浪費優秀技術人才的才能,從而讓有前途的科技成果脫穎而出,而不是在混亂指揮下胎死腹中。

貝爾實驗室的管理層也對失敗也是保持了寬容和耐心,“每個人都會大略預估年終成果,但不管做錯多少次都沒關係”,“對於那些年復一年做同一件事的人,管理層會保持耐心,以待長遠。”

良好的科研管理體制,也促進了跨學科的研究。作者寫道“跨學科的工作在更高層眼中更突出,因為更多管理人員能夠看到它。協作越廣泛,就會有越多管理者看得到,結果就形成了一個極其偏重協作與跨學科研究的組織。做決策的管理人員也要經歷這個評估過程,所以他們會有同樣的傾向。”

優秀的人才,良好的管理體制,造就了改變世界的優秀科技產品,讓整個人類社會都受益無窮。

絕對值得一讀的計算機小史

本來應該看完書立馬寫書評的,不過當時被其他事情耽擱了,導致很多思路都沒了,下面只能想到哪兒說到哪兒了,可能比較散亂。

這個標題起得有些頭痛,本想說“科學史”,但好像也不是那麼嚴謹考究,主要就是作者自己的回憶,只能說足供參考。

然後是作譯者。首先作者咖位在那兒。Brian W。 Kernighan,C語言聖經作者之一,計算機發展史絕對的親歷者。

其次譯者有保障,《程式碼整潔之道》的譯者韓磊,整個讀下來行文幹練明快,曉暢平實,很有節奏,閱讀體驗非常好。

正文前的推薦序太多了,有些冗長;但也確實顯出一些生動來,看看各位大佬的書評也頗有一番意趣。見到了不少只是我眼熟他們的名字。

譯序中,譯者提到“這就是我讀這本書時的感受:書中提到的許多名字,早已如雷貫耳。在我心目中,他們全是大神級人物,高高在上,凡夫不可親近。全書譯完,這些人從神壇走下來,就地現出極客真面目”,乍一讀到貌似有道理,但給人的感覺又是一種平平無奇還不走心的誇讚——畢竟,你都不知道有多少書用過類似的表述做宣傳。

但是一邊讀,我就一邊發現譯者這句評價,可謂是誠意十足,絕非恰飯。計算機領域這一個個熠熠生輝的巨星,跟你身邊的朋友沒有太大的不同——當然,我不是說技術水平——喜怒哀樂愁,技術的思考,對大公司官僚主義的譏諷和反抗,等等。

什麼叫真實呢?Kernighan回憶自己給時任CIA局長做shell指令碼的演示,因為嫌棄指令碼處理時間太長,居然選擇預先儲存指令碼執行結果,實際演示的時候只是簡單延時兩秒,然後原樣輸出了儲存的結果……看到這裡我先是一驚,然後真的就忍不住哈哈大笑了起來。

畢竟這也未免過於真實了一點,程式設計師或者再擴大一些,搞技術的人或多或少都做過類似的事情糊弄領導。看到這裡你會覺得,Kernighan和他的同事們,都不再只是書本上作者欄裡的一個個名字,而是一個個鮮活生動的人,也是普通人,甚至就好像是你、你的同事(當然我這種菜雞無緣與此等大佬為伍),也會耍小聰明,也會做一些看起來不那麼“正確”的事。

作者回憶中最讓人羨慕的,還是美國的學術休假制度——每隔一定年限,在全薪或減薪的情況下,研究者外出休整一年或稍短的時間,學習、休養或旅行(百科)。並且從書中看,不光是高校教師,貝爾這樣的企業實驗室同樣擁有這樣的福利。Kernighan和Ken都有帶薪在大學任教的經歷,大學的教師也可以去貝爾實驗室做一段時間的研究。說起來貝爾實驗室是商業實驗室,研究人員是工業界的工程師,但是同時他們也是學術界的科學家,學術地位斐然。

對於技術向讀者來說,更親切的莫過於看到那些日常使用的工具、命令的起源故事了。一直以來,我就很奇怪,為什麼Unix的系統呼叫creat要寫成這樣,為什麼不拼寫成create,反而非要給普通使用者帶來記憶障礙。結果一看書,好傢伙,原來就是Ken一時的個人喜好,故意省略了字母e……就是Ken自己也表示,如果可以重來,他希望能在creat後面加上字母e。

看到這些故事,你會感覺到,我們當前擁有、使用的一切都不是天經地義的,也是被那些天才人物一點點設計出來的,然後再經由使用者反饋逐漸演化成了今天這個樣子;他們在設計的時候也會欠缺考慮甚至一時腦抽、手賤。

看著這些熟悉的工具一點點被設計出來,每個工具背後都有一段生動的故事,每一處你用起來彷彿不是那麼順手的地方,都有它的歷史淵源,並且作者自身也並非沒有意識到存在的問題,可是卻迫於當時的實際情況無法進行改進。

並且,當想到還有這麼多大師依然健在,和我們看著同樣的新聞,用著同樣的工具,還在為世界作出自己的貢獻,不禁讓人感慨何其幸運。

最後,寫作能力太重要了。回顧這激盪的半個世紀,作者從親歷者、參與者的角度告訴我們,“ C語言和Unix的部分成功可以歸功於丹尼斯的寫作 ”。Unix咱是寫不出來了,不過寫作還是可以拯救一下。技術人,口頭表達能力或許差一點,書面表達能力再差,就實在有些不該了。

成也專利,敗也專利

K&R C 的那個 R 寫的關於 Unix 的一本小回憶錄,封面印刷極其模糊,看起來像自家小作坊列印的,不過內容還不錯。介紹了一下 Unix 的起源、發展和沒落,也有一些 Unix 重要元件的基本介紹。不過與其說是一本歷史書,更像是作者作為親身經歷整個過程之後懷舊所寫下的回憶錄,裡面有不少趣聞軼事,彷彿能在字裡行間看見作者回憶往事時的溫暖的感覺。

作為從 GNU 和 Linux 開始接觸開源世界的一代,對 Unix 的印象更多的是刻板守舊的頑固派,最終被 Linux 搶佔了所有的天下。從這個回憶錄中可以看到實際情況其實並不是這樣,在 Unix 起源的時段它是非常革命性的創新(Unix 作者因此得了圖靈獎),不過 Unix 成也專利敗也專利:早期在 Bell Lab 搞作業系統的那些人申請不下經費來買電腦(PDP-10 在當時的價格是 50 萬美元),但是當時在公司申請專利是一件大事(平均每天都會有一個新專利),於是他們說服專利局買了一臺 PDP-11,幫他們搞可以讓寫專利更順暢的軟體,同時獲得晚上訪問機器的許可權,Unix 就是在這樣的情況下被開發出來的。而後來 Unix 的沒落我們都知道了,由於 Unix 極其高昂的 lisence fee(也不是 Unix 原作者們所能左右太多的事了),導致了各種衝突,比如 BSD 那邊添加了 TCP/IP 的功能之後釋出他們的 Unix 版本,結果吃上了漫長的官司,重寫了 Unix 原來有的所有程式碼還不行,總之在各種混亂中 Linus 發了那封著名的郵件宣告了 Linux 的誕生。

後期關於 Bell Lab 本身在母公司分崩離析中沒落的過程描述也有點讓人傷感的,配合另外的關於貝爾實驗室的歷史的書看會更有感觸。曾經的貝爾實驗室不再了,不過所幸現在在其他的一些 Industrial Lab 也還有比較寬鬆自由的研究環境,沒有了單間的獨立辦公室,但多了 free food。