1969年,肯?湯普森(Ken )和丹尼斯?里奇( )在貝爾實(shí)驗(yàn)室(Bell Labs)創(chuàng)造了UNIX系統(tǒng)。50年后,UNIX系統(tǒng)在全世界被廣泛應(yīng)用,多數(shù)時(shí)候以Linux的形態(tài)呈現(xiàn),在從極小到極大的無(wú)數(shù)種計(jì)算機(jī)上運(yùn)行。
在1969年的貝爾實(shí)驗(yàn)室,UNIX是怎么來(lái)的?貝爾實(shí)驗(yàn)室是怎樣的機(jī)構(gòu)?寥寥數(shù)位研究員組成的小團(tuán)隊(duì)是如何改變世界的?是什么讓UNIX成為可能,并推動(dòng)它演化?UNIX的發(fā)展,與現(xiàn)代操作系統(tǒng)又有何聯(lián)結(jié)?······
這是人們對(duì)于UNIX誕生及其背后故事的疑問(wèn),也是《UNIX傳奇:歷史與回憶》想要回答的。本書作者布萊恩·W. 克尼漢是普林斯頓大學(xué)計(jì)算機(jī)科學(xué)系教授,30余年貝爾實(shí)驗(yàn)室工齡,傳奇程序"Hello, World!"的發(fā)明者,UNIX誕生見(jiàn)證者!這本書帶你走進(jìn)貝爾實(shí)驗(yàn)室,一探UNIX的起源,親歷計(jì)算機(jī)技術(shù)發(fā)展史實(shí)。
作者:[美]布萊恩·W.克尼漢(Brian W. )譯者:韓磊點(diǎn)擊封面京東購(gòu)書5折
從UNIX的回憶錄牽扯出縱觀整個(gè)計(jì)算機(jī)科學(xué)史的大主題:
從技術(shù)發(fā)明孵化出管理與科技創(chuàng)新的原力。
01
誰(shuí)能預(yù)料歷史的進(jìn)程?
UNIX操作系統(tǒng)誕生于1969年,但它不是從石頭縫里蹦出來(lái)的。
20世紀(jì)60年代,最具有創(chuàng)造性的操作系統(tǒng)是麻省理工學(xué)院推出的CTSS(兼容分時(shí)系統(tǒng))。但麻省理工學(xué)院的研究員們想做出一個(gè)比CTSS更好的版本,他們邀請(qǐng)了貝爾實(shí)驗(yàn)室和美國(guó)通用電氣公司共同參與研發(fā),意圖創(chuàng)造出一套信息處理工具,向大眾提供計(jì)算服務(wù)。
因此,他們開(kāi)始設(shè)計(jì)系統(tǒng)。本該前途無(wú)量,但其很快就陷入了困境。
礙于當(dāng)時(shí)技術(shù)條件的匱乏,且系統(tǒng)要求過(guò)多功能特性,多處模塊出現(xiàn)過(guò)度設(shè)計(jì),導(dǎo)致研發(fā)存在過(guò)多難以解決的技術(shù)難題,研發(fā)進(jìn)度極其緩慢。1969年4月,貝爾實(shí)驗(yàn)室退出項(xiàng)目。
雖然系統(tǒng)最終還是完成了,但它至今尚未被廣泛接受,只是得到了部分人的支持和使用。很多好點(diǎn)子濫觴于,不過(guò)它最偉大的貢獻(xiàn)還在于它影響到了一個(gè)叫UNIX的小操作系統(tǒng)的誕生!這個(gè)小系統(tǒng)誕生的部分原因正是想要擯棄的復(fù)雜架構(gòu)。
歷史就此改變。
在貝爾實(shí)驗(yàn)室退出項(xiàng)目后,原來(lái)參與項(xiàng)目開(kāi)發(fā)的成員肯·湯普森仍想做操作系統(tǒng)。肯·湯普森偶然在實(shí)驗(yàn)室找到一臺(tái)沒(méi)怎么用過(guò)的DEC PDP-7計(jì)算機(jī),他為其創(chuàng)作了一個(gè)太空旅行游戲。并且,他還為PDP-7磁盤專門設(shè)計(jì)了一個(gè)磁盤調(diào)度算法來(lái)提升磁盤的吞吐量。
如何測(cè)試這個(gè)算法呢?這需要往磁盤上裝載數(shù)據(jù),肯·湯普森認(rèn)為他需要一個(gè)批量寫數(shù)據(jù)的程序。
“在某一時(shí)刻,我發(fā)現(xiàn)離實(shí)現(xiàn)一個(gè)操作系統(tǒng)僅有3周之遙了。”他需要寫三個(gè)程序,每周寫一個(gè):用來(lái)創(chuàng)建代碼的編輯器;將代碼轉(zhuǎn)換為PDP-7能運(yùn)行的機(jī)器語(yǔ)言的匯編器;再加上“內(nèi)核的外層”——操作系統(tǒng)齊活了。
PDP-7計(jì)算機(jī)圖片你認(rèn)為創(chuàng)作出UNIX需要多久?三個(gè)月?半年?還是像一樣花了好幾年?
而肯·湯普森只花了三周。正如肯·湯普森在2019年一次采訪中所說(shuō),“一周,一周,再一周,我們就有了UNIX。”無(wú)論以何種方式來(lái)度量,這都體現(xiàn)了真正的軟件生產(chǎn)力!
由于受到的影響,布萊恩·克尼漢提議用uni(指新系統(tǒng)“擇一而從”)來(lái)替代中的multi(意圖提供“包羅萬(wàn)象”的功能),命名“UNICS”。
UNICS后來(lái)變成了 UNIX,丹尼斯·里奇后來(lái)形容這個(gè)名字“正中要害”。的確如此,UNIX不僅閹割了的部分要求,還取得了渴求的成就。
PDP-7的UNIX系統(tǒng)實(shí)在有趣,即使它只是運(yùn)行在一臺(tái)小型計(jì)算機(jī)上。但由于UNIX操作系統(tǒng)在所有類型的硬件上都保持一致,而且用較高級(jí)語(yǔ)言寫成,只需付出相對(duì)較少的成本,即可從一種計(jì)算機(jī)移植到另一種計(jì)算機(jī)。
正是因?yàn)檫@些優(yōu)于其他操作系統(tǒng)的創(chuàng)新性特點(diǎn),UNIX這把“大神器”在歷史的洪流中,穩(wěn)步向前,一步步邁向傳奇。
在計(jì)算機(jī)科學(xué)技術(shù)飛速發(fā)展的今天,即使是能以后世者的“上帝視角”來(lái)回望這段不同尋常歷史的我們,都大受震撼c/c 程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系統(tǒng),為這段歷史感到驚奇。
那么,在50年前的計(jì)算機(jī)科學(xué)發(fā)展背景下,誰(shuí)又能預(yù)料到歷史的進(jìn)程?即便是UNIX的創(chuàng)造者肯·湯普森和丹尼斯·里奇也沒(méi)能預(yù)料到UNIX會(huì)如此成功。
UNIX的兩位主要?jiǎng)?chuàng)造者:肯·湯普森(左)和丹尼斯·里奇(右)
02
UNIX廣為流傳推動(dòng)商業(yè)化,向世界發(fā)起挑戰(zhàn)
正如沒(méi)人預(yù)料到肯·湯普森能從失敗品中能涅槃重生出UNIX,也沒(méi)人預(yù)料到UNIX的流傳之廣,堪稱傳奇。
正如R·L·馬丁在《Unix and 》一書中寫道:“目前,全世界有1400所大學(xué)和學(xué)院使用UNIX操作系統(tǒng)。它是70種計(jì)算機(jī)產(chǎn)品線的基礎(chǔ),范圍涵蓋從微型計(jì)算機(jī)到超級(jí)計(jì)算機(jī)。目前正在運(yùn)行的UNIX系統(tǒng)約有10萬(wàn)個(gè),約有100家公司正在開(kāi)發(fā)基于它的應(yīng)用程序。”
在1127中心(貝爾實(shí)驗(yàn)室計(jì)算科學(xué)研究中心,UNIX系統(tǒng)的發(fā)源地)的實(shí)驗(yàn)室里待了幾年后,UNIX開(kāi)始往貝爾實(shí)驗(yàn)室內(nèi)部和外部傳播,席卷范圍甚廣。
▌UNIX發(fā)展時(shí)間線UNIX的第7版開(kāi)始主要有2條發(fā)展線。一條來(lái)自伯克利,它以比爾·喬伊及其同事的工作為基礎(chǔ);另一條來(lái)自AT&T,因?yàn)锳T&T試圖將UNIX的專業(yè)知識(shí)和所有權(quán)做成一樁有利可圖的生意。
UNIX的外部傳播主要途徑是高校。根據(jù)商業(yè)秘密協(xié)議,高校支付象征性的“媒介費(fèi)”即可獲得整個(gè)系統(tǒng)的源代碼。這絕對(duì)不是“開(kāi)放源碼”:系統(tǒng)只能用于教育目的,被許可人只能與其他被許可的用戶討論經(jīng)驗(yàn)和UNIX用途。
即使對(duì)傳播多加限制,但是UNIX仍然以一種勢(shì)不可擋的來(lái)勢(shì),席卷計(jì)算機(jī)界。
社區(qū)迅速發(fā)展,用戶群體在世界各地涌現(xiàn),并發(fā)生了重大技術(shù)革新!其中最突出且具有商業(yè)價(jià)值的技術(shù)革新莫過(guò)于將系統(tǒng)移植到不同類型的硬件上,即可移植性,以及增加訪問(wèn)互聯(lián)網(wǎng)的新機(jī)制。
“隨著UNIX在學(xué)術(shù)界的傳播,企業(yè)最終從念大學(xué)時(shí)用過(guò)UNIX的新聘程序員那里開(kāi)始了解UNIX。”
此言不虛,UNIX確實(shí)擁有市場(chǎng)。甚至可以說(shuō),貝爾實(shí)驗(yàn)室的母公司——美國(guó)電話電報(bào)公司AT&T通過(guò)向大學(xué)生贈(zèng)送UNIX,無(wú)意中創(chuàng)造了這個(gè)市場(chǎng)。當(dāng)大學(xué)生進(jìn)入社會(huì),受雇于有能力支付真金白銀的公司時(shí),他們就會(huì)需要它。
從1984年開(kāi)始,USL積極營(yíng)銷UNIX,并努力將其改造為專業(yè)的商業(yè)商品,最終形成名為 V 4,或者稱為SVR4的版本。AT&T投入大量資源,推動(dòng)這個(gè)版本成為標(biāo)準(zhǔn),并為源碼和目標(biāo)碼兼容提供了參考實(shí)現(xiàn)和細(xì)致的定義。
雖然AT&T的UNIX商業(yè)化努力并不總能成功,但是其因?yàn)樯虡I(yè)化而對(duì)UNIX的標(biāo)準(zhǔn)化對(duì)整個(gè)社區(qū)來(lái)說(shuō)非常寶貴,并且AT&T與合作者和競(jìng)爭(zhēng)者之間長(zhǎng)達(dá)十年的關(guān)于UNIX的互動(dòng)對(duì)操作系統(tǒng)市場(chǎng)影響頗大。
▌ UNIX商標(biāo)創(chuàng)立
在UNIX早期貝爾實(shí)驗(yàn)室的法定監(jiān)護(hù)人認(rèn)為,UNIX這個(gè)名字是高價(jià)值商標(biāo),必須加以保護(hù)。這無(wú)疑是正確的商業(yè)決定。
他們?cè)噲D防止這個(gè)名字成為可被任何人使用的通用名詞,就像阿司匹林、自動(dòng)扶梯、拉鏈等詞那樣。
因此,公司要求貝爾實(shí)驗(yàn)室員工正確地使用這個(gè)名字。特別地,它不能作為獨(dú)立名詞使用,如“Unix is an ”,必須標(biāo)示商標(biāo),而且還只能以大寫形容詞形式存在于“the ”(操作系統(tǒng))短語(yǔ)中,這就導(dǎo)致了“The is an ”(操作系統(tǒng)是一個(gè)操作系統(tǒng))這樣的可笑句子。
羅布·派克和布萊恩不得不為1984年出版的The Unix (《Unix編程環(huán)境》)一書力爭(zhēng)命名權(quán),否則,這本書就得叫The 了。最終的折中方案是:封面上不出現(xiàn)商標(biāo)或腳注標(biāo)記,但在扉頁(yè)上印了幾乎看不見(jiàn)的星號(hào)和腳注。
《UNIX: A and a 》封面圖
UNIX因?yàn)閺V為流傳,而具有商業(yè)化的潛力和巨大的市場(chǎng),雖然商業(yè)化后的“專業(yè)UNIX”因?yàn)槟承┰蜻M(jìn)入了緩慢的衰退期,但是UNIX的另一分支——開(kāi)放源碼版本UNIX仍舊活躍,這項(xiàng)技術(shù)仍然在向世界發(fā)起挑戰(zhàn)。
03
UNIX取得了巨大的成功
歷史選擇了UNIX,所以UNIX這只小蝴蝶在貝爾實(shí)驗(yàn)室輕輕扇動(dòng)翅膀,便能在計(jì)算機(jī)科學(xué)界掀起浪潮。
UNIX取得了巨大的成功。UNIX及在其基礎(chǔ)上誕生的Linux、macOS等其他變種運(yùn)行在數(shù)十億臺(tái)計(jì)算機(jī)上,持續(xù)為數(shù)十億人服務(wù),當(dāng)然也為在它之上構(gòu)建業(yè)務(wù)的人賺取了數(shù)十億美元。后來(lái)的操作系統(tǒng)受它影響極深。
那么,UNIX成功的原因何在?是否有一些想法或教訓(xùn)可以在其他環(huán)境中學(xué)習(xí)和應(yīng)用?布萊恩?W.克尼漢認(rèn)為至少在兩個(gè)方面答案是肯定的:技術(shù)方面絕對(duì)有,組織方面也有。
《UNIX傳奇:歷史與回憶》作者:布萊恩?W.克尼漢▌技術(shù)方面采用分層文件系統(tǒng)。在UNIX的世界里,生產(chǎn)力往往以刪除了多少特殊情況或者代碼行數(shù)來(lái)衡量,正如分層文件系統(tǒng)就是對(duì)既有做法的重大簡(jiǎn)化。UNIX的高明之處在于選擇了足夠普適的抽象概念,既能發(fā)揮巨大的作用,又不至于在性能上付出太大代價(jià)。
采用高層級(jí)的實(shí)現(xiàn)語(yǔ)言。曾幾何時(shí),世上只有硬件制造商的專有操作系統(tǒng),配備專有語(yǔ)言,而自UNIX問(wèn)世,UNIX便成為了開(kāi)放的、被廣泛理解的標(biāo)準(zhǔn),后又變作一種商品。客戶不再被束縛在特定硬件上,制造商也不再需要開(kāi)發(fā)自己的操作系統(tǒng)或語(yǔ)言。
采用用戶級(jí)的可編程shell。用戶級(jí)的可編程shell具有控制流語(yǔ)句和方便的I/O重定向功能,使得將程序作為構(gòu)件進(jìn)行編程成為可能。隨著shell編程能力的增強(qiáng),它成為程序員工具箱中的另一種高級(jí)語(yǔ)言。而且,因?yàn)樗怯脩艏?jí)程序,不是操作系統(tǒng)的一部分,所以任何人只要有更好的想法,就可以對(duì)它進(jìn)行改進(jìn)和替換。
采用管道。管道是典型的UNIX發(fā)明,是臨時(shí)連接程序的一種優(yōu)雅而高效的方式。
UNIX在技術(shù)上的創(chuàng)新發(fā)明數(shù)不勝數(shù) ,正是這些技術(shù)上的優(yōu)勢(shì)讓UNIX成為后世操作系統(tǒng)的原石。▌ 組織方面
UNIX之所以能取得巨大的成功,部分原因還來(lái)自非技術(shù)因素,如貝爾實(shí)驗(yàn)室的管理和組織結(jié)構(gòu),1127中心的人際環(huán)境,以及一群人才聚在一起解決不同問(wèn)題時(shí)的思想交流。正是緣于貝爾實(shí)驗(yàn)室對(duì)科研人員經(jīng)費(fèi)的保障、對(duì)于難題的支持、對(duì)于聘請(qǐng)優(yōu)才的謹(jǐn)慎、對(duì)于技術(shù)的深度掌握、對(duì)于高標(biāo)準(zhǔn)協(xié)作環(huán)境的投入和對(duì)實(shí)驗(yàn)室人文的關(guān)懷,UNIX在這里快速又茁壯地成長(zhǎng)起來(lái)。
貝爾實(shí)驗(yàn)室總部照片
UNIX如此成功,本土操作系統(tǒng)同樣受到了巨大影響。
對(duì)此,統(tǒng)信學(xué)院執(zhí)行院長(zhǎng)秦冰在推薦語(yǔ)中提到“作為操作系統(tǒng)行業(yè)的從業(yè)人員,我能切身體會(huì)到UNIX的重要性。沒(méi)有它,如今手機(jī)上的和iOS、電腦上的、云計(jì)算中被廣泛使用的Linux就無(wú)從談起;沒(méi)有它,石油開(kāi)采、航空航天、機(jī)械制造、金融商業(yè)的效率水平無(wú)法預(yù)測(cè);沒(méi)有它,國(guó)產(chǎn)操作系統(tǒng)之路又何其漫漫。過(guò)去20年,國(guó)產(chǎn)操作系統(tǒng)正在漸漸從‘可用’階段向‘好用’階段良性發(fā)展,并且在國(guó)家防范網(wǎng)絡(luò)攻擊與威脅等安全領(lǐng)域扮演著核心角色。可見(jiàn)UNIX的誕生對(duì)國(guó)產(chǎn)操作系統(tǒng)開(kāi)發(fā)的作用也是不可估量的。”
事實(shí)上,在國(guó)外開(kāi)源操作系統(tǒng)生態(tài)不斷發(fā)展的背景下,中國(guó)操作系統(tǒng)也應(yīng)運(yùn)而生。中國(guó)操作系統(tǒng)初始于20世紀(jì)末,其間誕生過(guò)多個(gè)操作系統(tǒng),并且大多都是以UNIX/Linux為基礎(chǔ)二次開(kāi)發(fā),受UNIX影響頗深。
UNIX取得巨大成功不僅給國(guó)產(chǎn)操作系統(tǒng)帶來(lái)了寶貴的經(jīng)驗(yàn),并且在潛移默化中影響著國(guó)產(chǎn)操作系統(tǒng)的發(fā)展趨勢(shì)。
04
愿原力與你同在!
今天,我們回頭看肯?湯普森、丹尼斯?里奇、道格?麥基爾羅伊、阿爾?阿霍、彼得?溫伯格、布萊恩?W.克尼漢、比爾?喬伊……這些人就像世界的開(kāi)創(chuàng)者一樣,早在三四十年前就為未來(lái)計(jì)算機(jī)世界編制了迷人的DNA,這個(gè)DNA就是UNIX和C語(yǔ)言。
今天,整個(gè)計(jì)算機(jī)世界全都有UNIX和C語(yǔ)言的印記。不僅如此,UNIX的“設(shè)計(jì)哲學(xué)”以及UNIX所帶來(lái)的為自由而開(kāi)源的“黑客文化”也成為最純正的計(jì)算機(jī)文化,推動(dòng)著整個(gè)人類計(jì)算機(jī)文明的向前發(fā)展。
只有了解這些璀璨的歷史和文化,我們才知道計(jì)算機(jī)世界中真正的格局和品味是什么,也才知道真正的原力是什么。
愿原力與你同在!
作者:[美]布萊恩·W.克尼漢(Brian W. )譯者:韓磊
自1969年在貝爾實(shí)驗(yàn)室的閣樓上誕生以來(lái),UNIX操作系統(tǒng)的發(fā)展遠(yuǎn)遠(yuǎn)超出其創(chuàng)造者們的想象。它帶動(dòng)了許多創(chuàng)新軟件的開(kāi)發(fā),影響了無(wú)數(shù)程序員,改變了整個(gè)計(jì)算機(jī)技術(shù)的發(fā)展軌跡。
本書不但書寫UNIX的歷史,而且記錄作者的回憶,一探UNIX的起源,試圖解釋什么是UNIX,UNIX是如何產(chǎn)生的,以及UNIX為何如此重要。除此之外,本書以輕松的口吻講述了一群在貝爾實(shí)驗(yàn)室工作的發(fā)明天才的有趣往事c/c 程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系統(tǒng),本書中每一個(gè)故事都是鮮為人知卻又值得傳播的寶貴資源。
本書適合對(duì)計(jì)算機(jī)或相關(guān)歷史感興趣的人閱讀。讀者不需要有太多的專業(yè)技術(shù)背景,就可以欣賞UNIX背后的思想,了解它的重要性。