- UNIX傳奇:歷史與回憶
- (美)布萊恩·W.克尼漢
- 2154字
- 2021-06-15 16:25:24
前 言
“回憶往往披著玫瑰色的光暈,令人歡欣。回憶常駐于美好而持久的事物上,也常駐于因努力改善人類生活而獲得的愉悅之中。”
——丹尼斯·里奇,
“The Evolution of the Unix Time-sharing System”
(Unix分時系統(tǒng)的演進),1984年10月
自1969年在貝爾實驗室的閣樓上誕生以來,Unix操作系統(tǒng)的發(fā)展遠(yuǎn)遠(yuǎn)超出其創(chuàng)造者們的想象。它帶動了許多創(chuàng)新軟件的開發(fā),影響了無數(shù)程序員,改變了整個計算機技術(shù)的發(fā)展軌跡。
Unix及其衍生產(chǎn)品在特定的技術(shù)社區(qū)之外并不廣為人知,但它們是若干系統(tǒng)的核心,這些系統(tǒng)已是許多人生活的一部分。谷歌(Google)、臉書(Facebook)、亞馬遜(Amazon)等提供的許多服務(wù)和其他大量服務(wù)都由Linux驅(qū)動。Linux是類Unix操作系統(tǒng),后文將會講到。你的手機或MacBook運行著某種版本的Unix操作系統(tǒng)。如果你家里有Alexa等智能小電器,或者車上有導(dǎo)航軟件,它們也由類Unix操作系統(tǒng)驅(qū)動。如果你瀏覽網(wǎng)頁時總被廣告轟炸,也是Unix操作系統(tǒng)在后面支撐。當(dāng)然,基于Unix的追蹤系統(tǒng)也知道你在做什么,以便更精準(zhǔn)地對你進行廣告轟炸。
50多年前,在一小群合作者和追隨者的幫助下,有兩個人創(chuàng)造了Unix。由于一系列幸運的“意外”,我在其中亦有貢獻,但絕不敢居功自傲。我頂多是寫了一些有用的軟件,還有幾本幫助人們學(xué)習(xí)Unix及其語言、工具和哲學(xué)的圖書。這要感謝那些頂尖的合著者們。
本書不但書寫Unix的歷史,而且記錄了我的回憶,一探Unix的起源。本書試圖解釋什么是Unix,Unix是如何產(chǎn)生的,以及Unix為何如此重要。不過,本書絕非學(xué)術(shù)著作(腳注欠奉[1]),與我的初衷不同,它偏重回憶甚于歷史。
本書為那些有興趣了解計算或創(chuàng)新史的讀者撰寫。書中有一些技術(shù)內(nèi)容,我會盡量給出解釋,好讓沒有相關(guān)背景知識的讀者能夠領(lǐng)會基本概念,以及了解這些概念的重要之處。讀者可以隨意略過看起來太難懂的部分,不必逐字閱讀。對于程序員,其中一些解釋會顯得太啰唆,還好書中有些對歷史的思考仍然有用,與之有關(guān)的故事也頗有意趣。
我雖盡力求真,但回憶總有錯漏。而且,那些我借以佐證的訪談、憶舊、口述、書籍和文章并不全然與我的記憶相符,甚至這些資料也會互相矛盾。
幸好很多早期參與其中的人士仍然健在,他們能夠幫我去偽存真。他們的記憶也會有誤,或者帶有定見,但成書中的錯漏皆我之過。
本書主要的寫作目的是講述計算機歷史上某個極具生產(chǎn)力和發(fā)展性的時期中的一些精彩往事。理解我們習(xí)以為常地使用的技術(shù)如何演化而來,頗為要緊。有人頂住壓力、克服時間限制,做出了定義技術(shù)發(fā)展方向和路徑的決策。越了解歷史,我們越感激那些帶來Unix的發(fā)明天才,或許也越能理解現(xiàn)代計算機系統(tǒng)是如何發(fā)展成現(xiàn)在這個樣子的。僅就那些如今看起來大錯特錯抑或倒行逆施的選擇而言,常常也是在當(dāng)時可用資源限制之下所能考慮和實現(xiàn)的必然結(jié)果。
Unix操作系統(tǒng)是故事的中心,但其余亦有涉及。我還將講述被廣泛使用的C語言,人們用它編寫了支持互聯(lián)網(wǎng)運行的系統(tǒng)及利用系統(tǒng)能力的各種服務(wù)。在貝爾實驗室,還有一些編程語言隨Unix而生,尤其要提到也被廣泛使用的C++。Word、Excel和PowerPoint等微軟Office軟件就是用C++寫成的,大多數(shù)網(wǎng)頁瀏覽器也是用C++編寫的。程序員們耳熟能詳?shù)囊欢畟€日常開發(fā)工具,在Unix的早期就已問世,四五十年以來一直維持原狀,至今仍在許多程序員的工具包中有一席之地。
計算機科學(xué)理論同樣扮演著重要的角色,常常極大地推動實用工具的產(chǎn)生。硬件研究開拓出設(shè)計工具、集成電路、計算機體系架構(gòu),還有不常見的特殊用途設(shè)備。這些活動相互作用,往往帶來預(yù)料以外的發(fā)明,這也是貝爾實驗室在多個不同領(lǐng)域持續(xù)產(chǎn)出活力的原因之一。
科技創(chuàng)新的發(fā)生還與另一件有趣的事相關(guān)。Unix誕生地貝爾實驗室是很出色的機構(gòu),它既制造出許多好點子,也投資了這些好點子。多個改變世界的發(fā)明由貝爾實驗室而起,它的運作機制值得學(xué)習(xí)。
Unix的故事當(dāng)然也貢獻了大量有關(guān)設(shè)計和構(gòu)造軟件,以及有效利用計算機的洞見,我會在書中一一指出。例如,Unix軟件哲學(xué)倡導(dǎo)合用既有軟件,完成很多不同任務(wù),而不是從頭寫個新軟件。這個例子簡明又生動,它在編程領(lǐng)域體現(xiàn)了“分而治之”的故技:將大任務(wù)切分為多個小任務(wù),每個小任務(wù)都變得更可控,然后再以各種不可思議的方式將之整合到一起。
最后,雖然Unix是貝爾實驗室最搶眼的軟件,但它絕非貝爾實驗室對計算領(lǐng)域的唯一貢獻。計算科學(xué)研究中心(The Computing Science Research Center),即傳說中的“1127中心”,或簡稱“1127”,在那二三十年里面生產(chǎn)力“爆棚”。Unix激發(fā)了它的能力,Unix也是它的工作基礎(chǔ),但1127中心的貢獻遠(yuǎn)超于此。1127中心的成員寫出了多本重要著作,這些著作在后面的很多年里成為計算機科學(xué)的核心文獻,也是程序員可以按圖索驥的指南。1127中心分外顯赫,在當(dāng)時及以后都是極具生產(chǎn)力和規(guī)模較大的計算機科學(xué)研究團體。
Unix及其周邊環(huán)境為何如此成功?區(qū)區(qū)兩人的實驗性產(chǎn)品如何演化為真正改變世界的東西?這是否是孤例?類似事件還會再發(fā)生嗎?關(guān)于如此耀眼的成果能否被規(guī)劃出來的大問題,我打算留到本書末尾再討論。目前我認(rèn)為,Unix的成功是一些偶然因素的作用結(jié)果:兩位杰出人士,一群優(yōu)秀擁躉,卓越而開明的管理體制,有遠(yuǎn)見的公司的持續(xù)投資,允許離經(jīng)叛道、大膽探索的自由環(huán)境。科技快速演進,硬件以指數(shù)級速度不斷變小、變快、變便宜,推動了Unix的應(yīng)用。
對我和貝爾實驗室的很多同事而言,Unix的早期歲月既富有活力,又充滿樂趣。我希望這本書能讓你略微感受到丹尼斯?里奇說的那種因努力改善人類生活而獲得的愉悅。
[1] 原文如此。為幫助讀者理解,譯者添加了一些腳注。
- Linux設(shè)備驅(qū)動開發(fā)詳解:基于最新的Linux4.0內(nèi)核
- Linux操作系統(tǒng)基礎(chǔ)
- Windows Server 2012 Hyper-V:Deploying the Hyper-V Enterprise Server Virtualization Platform
- Linux實戰(zhàn)
- 阿里云數(shù)字新基建系列:云原生操作系統(tǒng)Kubernetes
- SOA實踐者說
- Windows 7中文版從入門到精通(修訂版)
- Dreamweaver CS5.5 Mobile and Web Development with HTML5,CSS3,and jQuery
- Ceph分布式存儲實戰(zhàn)
- Application Development in iOS 7
- Windows 8實戰(zhàn)從入門到精通(超值版)
- OpenVZ Essentials
- 電腦辦公(Windows 10 + Office 2016)入門與提高(超值版)
- Azure Resource Manager Templates Quick Start Guide
- Windows 8完全自學(xué)手冊