Unix40年風雨歷程:革命性操作系統的過去現在與未來
原創【51CTO獨家翻譯】40年前的這個夏天,一個程序員坐在他的電腦前,輸入了一系列的代碼,于是軟件歷史上最重要的一個產品就此誕生了。
1969年的八月,來自AT&T實驗室的程序員Ken Thompson發現當他的妻子和孩子出去度假的時候,他終于有時間來實現自己關于新操作系統的想法了。他用匯編語言為Digital Equipment公司編寫了第一版的Unix操作系統。他使用DEC的小型機PDP-7,各花了一周的時間來完成外殼程序,編輯器和匯編程序。自從貝爾實驗室在早些時候撤銷了一個被稱作Multics(多路信息與計算服務)的分時共享系統的項目(該項目早就陷入了困境)時,Thompson和他的同事Dennis Ritchie就感覺一直無所事事。他們不看好當時的那些主流操作系統,也不想繼續那個荒唐和愚蠢的Multics。經過多次關于全新操作系統的討論。Thompson編寫了第一個版本的Unix。這個版本的Unix在后續的幾年內得到了他的同事Doug McIlroy, Joe Ossanna 以及Rudd Canaday的幫助。一些來自Multics的創意被加入到了新操作系統里。但是這個全新的操作系統的精華就在于簡單就是最好的。
Ritchie 和Thompson在CACM的期刊中寫道:“一個強大的交互式操作系統既不需要花費大量的設備也不需要大批的人力。我們希望我們操作系統的用戶們發現Unix的最大特點就是簡單,優雅并且容易操作。”
顯然他們做到了。Unix已經成為IT界的基石,它已經被廣泛的應用到大學,政府部門里的服務器以及工作站中。而它的影響力遠比它應用的范圍大的多。由于對計算機界的貢獻,ACM在1983年授予Thompson 和Ritchie計算機界的最高榮譽---圖靈獎。 Unix的誕生使得一代的程序員開始重新思考編程的真諦。
Thompson和Ritchie
早期的起步
羅馬不是一天建成的。在1971年,Unix被移植到了PDP-11小型機上,這個平臺遠比早期的PDP-7強大的多。新的系統中加入了全新的文本格式以及文本編輯器。而它的第一批使用者就是來自貝爾實驗室專利部門的打字員們。
在1972年,Ritchie發明了高級C程序語言(這是基于Thompson早期的B語言),隨后Thompson用C語言重新編寫了Unix,而這極大的增強了系統的便攜性。而這個版本被命名為Unics(Uniplexed Information and Computing Service),這也是對當年Multics的致敬,不久這個名字又被改回Unix。
而是時候讓大家了解這個全新的操作系統了。Ritchie 和 Thompson于1974年6月在CACM期刊上發表了《Unix,全新的分時系統》的論文。這篇論文引起了巨大的反響。早期Unix在貝爾實驗室很受冷落。但是現在它有ACM作為后盾。編輯們稱這個優雅的操作系統是個劃時代的作品。
專門研究IT歷史的專家Peter Salus評論說:“這篇CACM的論文影響深遠,Ken因為Unix而被大家重視。”
黑客們的天堂
Thompson和Ritchie被稱作是黑客們的教父。黑客們稱贊他們是集超凡的創造力與無窮的智慧于一身。他們研究問題的方法,編寫代碼的方式,在大學里對程序員們的精彩演講,以及拒絕微軟,IBM的資助,白手起家創辦公司的事跡都被人們津津樂道。而Unix也是當時一些像加州大學Bill Joy,卡耐基梅隆大學Rick Rashid,貝爾實驗室David Korn等一些著名黑客專研的模板。Thompson和Ritchie在論文中寫道:“幾乎從一開始,這個系統就可以自己進行完善。所有源代碼都可以在互聯網上查看與修改。當互聯網上有新的創意發布出來我們很樂于修改或者重寫系統。”
AT&T的程序員Korn評價說:“Unix最大的特點就是可以自己編寫工具來替換系統原有的工具。這比你從其他地方購買軟件好得多。你知道你到底需要什么,并且可以開發出更好的工具。”Korn是最有影響力的Unix開源工具Korn Shell的作者。
作家Salus回憶1970年他在多倫多大學使用IBM360系統進行APL編程時說:“那個IBM的系統十分糟糕。但是在1978年的圣誕,我的一位哥倫比亞大學的朋友送給我一臺安裝有Unix系統的小型機,它實在是太方便了。”他說Unix最大的優點就是他的管道特性。這一特點在1973年被引入,可以很方便的將一個程序的輸出連接到另一個程序上。流水線的概念是由貝爾實驗室的Mcllroy發明的。這一特點被大多數操作系統抄襲,例如Linux,DOS,Windows。
而Unix另外的一個優點就是它不需要幾百萬的大型機才可以運行。它是由低廉的DEC PDP-7編寫成的。Salus評價說:“我們不得不佩服Ken的智慧,可以用如此廉價的機器編寫出這么強大的操作系統。”
當時大學的研究員們普遍使用Unix因為它相對來說簡單而且便于操作,并且它是開源的,擁有很多免費軟件,特別適用于科學計算。
#p#
Unix的后代
如今Unix已經演變成為一個無所有權的操作系統。因為在1956年AT&T公司已經被聯邦政府要求只能提供電信業務。雖然公司也可以繼續開發一些軟件并且合理的收取一些費用,但是公司對于計算機業務已經不再熱衷了。而Unix也就不再受到公司的資助。而在二十世紀七十年代末期,AT&T公司突然認識到Unix還有一定的商業價值,因此他們就利用1956年的一項軟件著作權聲明想要把Unix聲明成為自己的商業機密。從1979年的Unix第七個版本開始,Unix的許可協議不再允許大學里使用Unix源代碼開設課程。
而Vrije大學的計算機教授Andrew Tanenbaum說:“這不是個問題。”在1987年他編寫了一個Unix的克隆版,并在他的課堂中使用它。這個開源的Minix操作系統可以運行在Intel 80286處理器上。
Salus說:“Minix實現了Unix的所有功能,這是一個杰作。只有一個資深的程序員,并且熟知操作系統真諦的人才能做到這點。”而Minix是1991年Linus Torvald的雛形。它不僅僅是個Unix的克隆,確切的說它只是外表像Unix而已。
讓我們再退回去幾年。在70年代,Bill Joy只是位加州大學伯克利分校的一位畢業生,他當時正從事程序員的工作。一次他從貝爾實驗室收到一份Unix的拷貝,他發現這是一個很好的平臺,可以運行他的Pascal編譯器和文本編輯器。
而后來他和他的同學們又編寫了Unix的另外一個重要的分支,被稱作Berkeley Software Distribution (BSD) Unix。在1978年3月,Joy賣出了BSD Unix的第一份拷貝,售價50美元。
因此,在20世紀80年代,市面上一共有兩個版本的主流Unix。一個來自Berkeley一個來自AT&T。而這就演變成后來大家熟知的Unix內戰。而用戶因此得到的好處就是可以免費得到Unix的源代碼并且定制自己合適的應用程序。而不好的地方就在于造成了Unix的分化與變種。
在1982年,Joy創辦了Sun微系統公司,并且發布了他們的第一款工作站Sun-1.這款Sun-1上運行的BSD Unix被稱作SunOS(這也是Solaris的前身)。而在第二年,AT&T就發布了Unix System V。而這款極具影響力的操作系統成為后來IBM AIX和Hewlett-Packard HP-UX的基礎。
Unix內戰
在80年代中期,用戶們就連聯邦政府都在抱怨,Unix雖然理論上是一個完整的操作系統,但是實質上它已經分化了。廠商們抱怨不得不通過定制自身的特性與API來鎖定用戶群。在1987年,Unix System Laboratories(當時它還是Bell實驗室的一個分支機構)開始與Sun合作,試圖合并這兩個主要的Unix分支。而他們合作的成果就是被稱作Unix System V Release 4.0的Unix系統。它與1989年發布,并且整合了System V Release 3, BSD, SunOS 以及 Microsoft's Xenix等多個Unix系統的特性。
而其它廠商開始對AT&T和Sun聯盟產生畏懼。而一些小聯盟像:X/Open, Open Software Foundation, Unix International 以及Corporation for Open Systems開始成立試圖對抗標準化聯盟。而這些聯盟間的口舌之爭已經可以寫成一本書了。而他們都宣稱自己的Unix是一個標準版本,并且借此抨擊對手。
一個寫于1988年沒有發表的論文中說:“微型計算機的先驅Gordon Bell評價由IBM,HP,DEC等一些反AT&T與Sun聯盟的公司組成的組織“開源軟件聯盟”(OSF)。開源軟件聯盟可以讓更多的廠商進入Unix市場,同時還可以保持這個市場較高的利潤率。”
而Unix內戰想要統一Unix操作系統標準的愿望并沒有達成。但是在1993年,Unix聯盟遭到了來自微軟公司的32位操作系統Windows NT企業版的迎頭痛擊。Window NT在用戶桌面以及數據中心等多個市場取替了Sun公司了壟斷地位。
微軟的擁護者拍手稱快而Unix的廠商慌了神。幾乎所有的主要的Unix廠商自發的組成了 Common Open Software Environment聯盟。而這也減輕了AT&T與Sun聯盟被邊緣化的危險。
而事實上,這些聯盟使得Unix更加的標準化了,并且更具有競爭力。但是它們發展的太慢,并沒有阻止開源操作系統Linux的成長。而Linux正是從當年Tanenbaum教授的Minix Unix發展而來的。
Unix進化史
Unix的未來
一份來自Gartner Group的報告表明,持續的缺乏便攜性以及相對于Linux和Windows在X86平臺的移植成本都促使IT人員脫離了Unix。
一份2009年的報告中說:“用戶對于Linux服務器平臺充滿了熱情,而Windows服務平臺的使用率也在逐年上升,相比之下Unix最近幾年一直都在下降。”來自Gartner的分析師George Weiss說“Unix有一個悠久的歷史,但是目前它正在壓力中苦苦支撐,Linux可以成為Unix戰略上的伙伴。雖然Linux沒有像Unix那樣自身的背景,但是它在性能以及穩定性發面將會馬上趕超Unix。”
但是一份來自計算機世界的調查表明近期不會發生大面積的Unix用戶系統遷移。通過對211位IT經理的調查表明:90%的經理人聲稱他們十分信賴Unix平臺。超過百分之五十的經理人聲稱Unix對于他們是至關重要的。只有12%的經理人宣稱將會在將來棄用Unix系統。節約成本與系統合并是其棄用的兩項重要原因。
Weiss說:“由于X86平臺的價格優勢,其移植的過程將會加速。可升級組件,聚類,云計算以及虛擬化,當你想要整合這所有的元素,你就只能選擇Linux或者Windows。舉個例子,思科公司剛剛宣布它的統一計算模型可以整合網絡,存儲,計算以及存儲器鏈接在一條網絡上。而你就不能使用Unix。你可以在X86平臺上運行Linux或者Unix,這是Intel的一次勝利。”
AT&T公司的Korn依舊看好Unix。他說自從1973年Unix引入了管道以來,它就在不斷的完善,現在你可以輕易的把它分割并且發布。而這將會促使Unix不斷進步。他說:“管道理論可以在云計算的環境下很好的工作。你可以把工作分成簡單的部分來取代臃腫的工程。”
Unix的后續發展
我們且不看Unix的最終命運。這個操作系統自從40年前在貝爾實驗室建立以來就發展了無數的后代產品。無數的主流軟件都來源于Unix這包括了IBM, HP, Sun公司的Unix,Apple電腦的Mac OS X 以及Linux。而Unix的跟目錄結構也影響了無數主流操作系統就像:微軟的Windows NT,IBM以及微軟的DOS系統等等。
Unix給了很多小公司建立自己低價平臺的機會。也許早先迷你系統的一個核心就變成的如今網絡通信系統的核心組件。而Unix也孕育了無數類似“管道”這樣的創意。Unix的后代Mach在科學計算以及分布式微處理器計算領域應用廣泛。
ACM將1983年的圖靈獎授予Thompson和Ritchie的Unix。他們評價說:"Unix系統的精華在于它的框架,每一個程序員都可以在其他人的基礎上繼續工作。"
【編輯推薦】