Unix 40年:操作系統革命的昨天,今天和明天

經歷了四個十年,操作系統的未來充滿了變數,但傳奇將會是永久的

 原文鏈接Computerworld

 

作者:Gary Anthes
時間:2009年6月4日美國東部時間凌晨12:01

 

譯者:陳皓(haoel(at)hotmail.com)
時間:2009年6月11日北京時間晚上10:22

 

譯者前言

 今年是Unix40歲的生日。很早就看到這篇文章了,一直想轉到中文社區。但一直沒有時間,今天看到了CSDN首頁的一篇《昨天,今天,明天! Unix系統的40年》號稱是轉載於cnBeta。這篇文章翻譯的要有多爛有多爛,簡直就是對Unix 40的歷史和原文作者的一種不敬。所以,在這裏給出全部譯文。

 

關於更爲詳細的歷史,可以參考我的《Unix傳奇》上篇下篇

以及一篇CSDN對我的採訪《Unix的現狀與未來

 

正文

40年前的一個夏天,一個程序員只用了一個月的時間就創造出了這個世界上迄今爲止最重要一個軟件的原型。

 

在1969年8月,Ken Thompson,AT&T公司Bell實驗室的一個程序員,因爲妻兒不在身邊,所以有機會把他的一些關於新的操作系統的想法付諸實現。他用彙編語言在DEC(Digital Equipment Corp.)的PDP-7微機上寫了第一個版本Unix,他只用了一週的時間就完成了一個簡單的操作系統,包括一個shell,一個編譯器還有一個彙編編譯器。

Thompson和他的一個同事Dennis Ritchie當時在開發一個叫”Multics(Multiplexed Information and Computing Service複雜指令和計算服務)”的分時(Time-Sharing)操作系統),因爲這個項目當時遇上了很多麻煩,所以Thompson和Dennis當時感到很沒勁,他們即不想去做當時主流的”批處理(Batch)操作系統”,也不想去做那個看上去怪異和笨拙的Multics。

所以,在他們來來回回討論經了一些關於新系統的想法後,Thompson寫下了第一個版本的Unix,然後,這位老搭檔在以後的幾年裏繼續開發着這個操作系統,當然,後面有更多的同事(Doug McIlroy, Joe Ossanna 和 Rudd Canaday)加入了進來。一些當時Multics的理念也被帶入到這個新的操作系統中來,但是更爲漂亮的Unix則帶來了–”更少則爲更多(less-is-more)”的哲學。

陳皓注:在我們所認識的歷史中,這兩位程序員當時是在Multics下開發一個叫”太空旅行”的遊戲,後來Multics項目解體了,這兩位哥們覺得自己的遊戲白弄了,所以就爲了這個遊戲開發了一個新的操作系統Unix,Unix的取名和Multics是相反的,Multics有”複雜的”的意思,而Unix則是”小巧的”意思。後來他們覺得這個操作系統非常不錯,所以在後來發表了一篇論文向全世界宣佈了這一操作系統,從此開啓了計算機世界嶄新的文化,詳情可參看我的《Unix傳奇上篇下篇

“一個強大的用於交互式的操作系統不應該在價格成本和人力成本上都是昂貴的” Ritchie 和 Thompson在開發這個操作系統5年後,他們在”計算機協會(ACM- Association for Computing Machinery)雜誌”上發表了一篇文章《Communications of the ACM (CACM)》,文中說,”我們希望Unix的用戶會找到那些非常重要的系統特性就是它是’簡單的’,’一流的’和’易用的’”。

顯然,他們做到了,Unix的確成爲了IT領域中的一塊基石,被廣泛地部署到了大學,政府和政治的服務器和工作站上。並且,Unix的影響力開發迅速地傳播開來,這恐怕超出了所有人的估計,正如ACM在1983年給Thompson 和 Ritchie頒發最具價值的圖靈獎(計算機領域的諾貝爾獎)所記錄的那樣–”Unix系統的模式已經在以一種全新的編程思想領導着新一代的軟件開發”。

Unix早期

 unix_kendennis.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_kendennis.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_kendennis.jpguploading.4e448015.gif轉存失敗重新上傳取消

Thompson 和 Ritchie.

當然,Unix的成功不是一蹴而就的。 在1971年,它首先被移植到了PDP-11微機(一個比PDP-7更強的微機)。文本格式和文本編譯程序在這時被加入進了Unix。並且,當時的實驗室專利部門已經開始用這些文本編譯器,這也是Unix系統除開發團隊之外的第一個用戶。

在1972年,Ritchie引入了一個更高級的語言–C語言(基於Thompson的B語言),此後,Thompson用C語言重寫了Unix,這極大地增加了Unix的可移植跨平臺性。然後,他們爲這個操作系統命名Unics(Uniplexed Information and Computing Service),這是和Multics玩的一個文字遊戲。但最後,Unix成了最終的名字。(陳皓注:Unix下的經常出現縮寫,如usr 是 user, ed是edit,gp是group,這也是Unix的文化。Unix的更名可能也是因爲這個吧)

是時候向全世界宣佈這個系統系統了。Ritchie 和 Thompson於1974年7月在 CACM 上發表了一篇論文– “The UNIX Time-Sharing System“《Unix分時操作系統》,這篇論文就像一個風暴一樣席捲了都個IT界。直到有一天,Unix被限制在了只能由Bell實驗室中的少數人使用。但是,因爲有計算機協會的支持,當時的Unix處於一個引爆點。

” CACM 的那篇論文產生了一個戲劇化的影響”, IT 歷史學家 Peter Salus 在他的書《The Daemon, the Gnu and the Penguin》中寫到, “很快,Ken 被鋪天蓋地的Unix的請求所淹沒”

 

黑客的天堂

 Thompson 和 Ritchie 算得上是史上最名副其實的”黑客”,當時”黑客hacker”一詞指的是那些把非常尋常的創意組合起來, 以一種超常智力,並以廢寢忘食的態度解決了某個鮮爲人知的軟件問題的人。

Thompson 和 Ritchie他們的所使用的開發方法,他們所寫下的代碼,極大地吸引了大學裏的程序員,並在以後,這些大學中其中的一些程序員因爲Unix開創了自己的公司,他們都是在Unix發展過程中的黑客,就像,加利福尼亞州大學的Bill Joy,卡內基梅隆大學的Rick Rashid ,以及Bell實驗室David Korn。當然,他們開創的這些公司都沒有IBM,HP和Microsoft的資助。

“幾乎從一開始,Unix就能夠,也確實是開始了自我進化”,Thompson和Ritchie在CACM 論文中說到,”因爲所有的源代碼總可以容易被人在線地更改,所以,當有一個新的想法被髮明,發現或是被建議出來的時候,大家都非常自願地修訂或重寫Unix系統和上面的軟件”。

Korn,一個今天還在AT&T工作的員工,上世紀70年代曾是Bell 實驗室的一個程序員。”Unix的一個特點是,一個小工具剛被完成,就被另一個更好的工具所代替”,他回憶起來說,”如果你覺得不好的話,你完全可以開完一個更好的版本”。Korn當時爲Unix開發了一個很具影響力的Korn shell,本質上來說,當年的Unix就像今天的開源軟件。

Salus,作爲一個作家和技術歷史家,回憶起,他上世紀70年代在多倫多大學時當教授時,在IBM System/360大機上使用APL編程語言工作時的情景–那並不很好用,但是自從1978年聖誕節以後,一個哥倫比亞大學的朋友給我演示了一下在微機上運行的Unix,”我說,’我的上帝啊’,我徹底被你征服了”。

他說,Unix最關鍵的優勢是他有一個”管道”特性(1973年引入),這麼我們可以把上一個程序的輸出輕鬆地傳給下一個程序。”管道”的概念,由Bell實驗室的McIlroy發明,隨後”管道”這個東西被其它幾乎所有的操作系統複製,包括所有的Unix, Linux,DOS和Windows。

unix_murrayhill_230.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_murrayhill_230.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_murrayhill_230.jpguploading.4e448015.gif轉存失敗重新上傳取消

位於新澤西Murray Hill 的Bell 實驗室總部

Credit: Alcatel-Lucent/Bell Labs

 

Unix還有一個不錯的地方。 “哇”,正如Salus所驚歎的,這個操作系統並不需要一個需要一百萬美金的大型機才能運行的操作系統。它在極其原始的小型的DEC PDP-7微機上開發出來,因爲這是當是Thompson 和 Ritchie可以找到用來寫這個操作系統最好的機器(陳皓注:當時這個機器像垃圾一樣被扔在實驗室角落裏)

很多很多的大學研究者們使用Unix就是因爲這是一個簡單和容易修改的操作系統,而且對硬件資源要求的很少,代碼也是開源和免費的。就像Sun Microsystems公司,或是一些用於特定的科學計算的主機公司,例如Multiflow Computer,他們在選擇Unix作爲操作系統時都和那些大學研究者們有相同的原因。

Unix家譜

Unix成長爲一個非私有的操作系統,是因爲1956年的AT&T公司受命於聯邦去經營電報電話服務。當然也可以開發軟件,甚至那個軟件可以有”合理”收費的許可證,但是這個公司卻被禁止從事任何和計算機有並的商業活動。

Unix,在開發的過程中,沒有任何的獎勵制度和管理,從一開始在AT&T公司出現時,其是一種近似於好奇或興趣的東西。

然而,20世紀70年代,AT&T公司開始意到Unix所帶來的商業價值。公司的律師開始尋找一些手段來保護Unix,並讓其成爲一種商業機祕。從1979年Unix的版本V7開始,Unix的許可證開始禁止大學使用Unix的源碼,包括在授課中學習。

沒問題!一個荷蘭阿姆斯特朗Vrije大學使用版本V6的計算機科學系的教授Andrew Tanenbaum說。在1987年,他爲教學目的克隆了一個Unix,創建一個叫Minix的開源的操作系統,並可以在80286的Intel芯片上運行。

“Minix使用了所有和Unix一樣的想法,並且這是一個非常燦爛的事物”,Salus說,”只有一個專門是程序員的並且非常瞭解操作系統內部的人才成幹出這件事來”。Minix從此變成了另一個起點–Linus Torvalids 在1991年使用Minix創造了Linux –這並不是一個簡單的Unix克隆版本,只不過它長得像Unix。

讓我們再回到Linux出現的十年以前,Bill Joy,畢業於加利福尼亞州大學伯克利分校,當年,他在學校的時候拷貝了Bell 實驗室的Unix版本,並且所到了這是一個很不錯的可以使用Pascal編譯器和文本編譯器的操作系統平臺。

於是,他更改變擴展了Unix,形成了Unix的第二個最主要的分枝–BSD(Berkeley Software Distribution)Unix。在1978年3月,Joy賣出了第一個BSD的拷貝:50美金。

到了1980年,有兩個最主要的Unix的版本線,一個是Berkeley的BSD,另一個是AT&T的Unix,在這個時候,很顯然,競爭最終引發了Unix的戰爭。在這場戰爭中,好的是,軟件開發人員還是能夠得到Unix的源碼並對其按照自己的需要和興致進行裁剪。而不好的是,Unix開始一發不可收拾地開發不停地出現各種各樣的變種。

1982年,Joy創建了Sun Microsystems公司並提供了工作站–Sun-1,運行在當一個BSD的版本,叫SunOS(Solaris以之後的十年出現)。而AT&T則在隨後的幾年中發佈了Unix System V的第一版,一個具有強大影響力的操作系統,最終造就了IBM的AIX和HP的HP-UX。

 

 

unix_chart_420.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_chart_420.jpguploading.4e448015.gif轉存失敗重新上傳取消unix_chart_420.jpguploading.4e448015.gif轉存失敗重新上傳取消

Unix 家譜. Credit: Eraserhead1 (cc-by-sa-3.0GFDL)
點擊這裏下載大圖

 

Unix戰爭

 在上世紀80年代中期,大量的用戶包括聯邦政府,開始抱怨”Unix是一個理論上單一的可移植的操作系統”,但事實上應該如此卻並不是這樣。Unix軟件供應商們,一方面爲這些抱怨而爲 其買單(”空頭人情”),而另一方面,他們卻在沒日沒夜地給用戶們定製Unix的各種功能和APIs,旨在爲了留下用戶。 

 而其它的Unix產商害怕At&T和Sun的聯盟,所以,有各種各樣的派別組織開始在”標準”上競爭,這些組織大多在X或Open命名,開放軟件基金會(Open Software Foundation),Unix開放系統國際和公司(Unix International and Corporation for Open Systems)等等,在這些組織中形成的各種各樣的爭論,辯論,抗辯和觀點可以寫一本厚厚的書,但他們無一例外地以肆意相互評擊來主張一個統一的Unix局面。

 剛形成的開放軟件基金會,其包括了IBM,HP,DEC和其它公司共同來反抗AT&T和Sun的聯盟。在一個1988年未出版的文件中,DAPRA(Defense Advanced Research Projects Agency)一個著名的小型機先驅Gordon Bell說, “開放軟件基金會OSF是一條’Unix窮人’進入正在發展的市場的一條路,他們以此來供養那個的高利潤代碼博物館”。

 Unix戰爭在解決差異和設定一個操作系統標準中以失敗告終。但在1993年,Unix社區聽到了一個”警鐘”–Microsoft發佈了Windows NT,一個企業級的,32位的,支持多處理的操作系統。而Windows NT的所有者瞄準了Unix領域,並企圖擴展Microsoft的桌面系統霸權到各種數據中心以及被Sun服務器所佔領的地方。

 Microsoft的用戶歡呼雀躍,Unix的產商開始驚慌。所有的主流的Unix競爭者們開始主動地聯合起來形成了一個通用開放式軟件環境(Common Open Software Environment),並在隨後的幾年中放下了他們的武器並開始着手把AT&T和Sun聯盟爲背景的”Unix International Group”併入開放軟件基金會OSF。這個合併在今天叫做–The Open Group,而證明Unix系統和所有者的是Single Unix Specification,現在官方叫法是–”Unix”。

 

但在實踐過程中,所有關於Unix的開發的確需要一個儘可能”標準化的”Unix,但是由於這些產商熱衷於競爭的習慣,在Unix下並沒有做到,但這一”標準化”被隨後如潮水一樣涌來的一個叫Linux的操作系統給完成了,這是一個開源的系統系統,則我們的Tanenbaum教授開發的Minix發展而來。

什麼是”Unix”?

Unix,許多人會說,是一個幾十年前在Bell實驗室寫的操作系統,Unix包括其所有的派生版本。今天,最主要的Unix版本是從兩個主幹上分出來的:一個當然是從AT&T出來的,另一個則是通過加利福尼亞伯克利分校產生的。今天,最頑強的分枝是IBM的AIX和HP的HP-UX以及Sun的Solaris。

然而,只有”The Open Group”擁有Unix的註冊商標,定義一個Unix需要遵從Single Unix Specification (SUS)。這包含了那些從來沒有Unix思想的操作系統,比如Mac OS X Leopard(這是從BSD和Mach那邊發展來)以及IBM的z/OS(這是從大型機操作系統MVS發展來的),因爲它們遵從了SUS的API規範。基本上來說,只要那看起來像是一個Unix,那他就是一個Unix,而不管它是由什麼代碼寫的。

當然,一個比較寬鬆的Unix定包含了Unix-Like的操作系統,有些時候,也叫做Unix-Clones或Look-Alikes,這些都是複製了Unix的東西但他們卻並不直接使用Unix的代碼。在這堆操作系統中,領頭羊是Linux。

最後,我們可以把Unix叫做一種”操作系統”因爲這是已成了實際習慣。另外,對於一個操作系統的內核,Unix實現了很多典型的工具比如命令行編輯器,應用程序接口,開發環境,開發庫和文檔–Gary Anthes

Unix的未來

由於這些長期競爭的各種版本的Unix缺乏可移值性,以及在價格方面沒有優勢,在x86芯片上佔據主導地位的Linux和Windows將會快速地讓所有的IT機構把Unix替換掉。調查機構Gartner Group最近公佈了這項調查結果。

“在主機服務器方面,調查結果繼續顯示公衆對Linux的熱情,而Windows也有相應的增長,而Unix系統還會長期存在,但是其逐漸地下滑”,這個調查報告由2009年2月發佈。

“Unix還會像以前那樣長期存在,但它已不如從前,而這種局面只會愈演愈烈” Gartner分析師George Weiss說,”Linux將會是Unix的另一選擇”,雖然Linux並沒有像Unix那樣經過了這麼長的開發、性能調整和壓力測試的過程,但很明顯他很快就要達到像Unix那樣的性能,可靠和擴展性”。

但是,最近一個由Computerworld發起一個民意調查,暗示了所有一切把Unix踢開的舉動不會很快地發生。在一個由130個Unix用戶和211個IT經理的問卷調查中顯示,其90%的人說他們的公司”非常極端地信任Unix”。不到半數的被訪者說,”Unix是一個非常基本的平臺,但我們並不確定其未來是否會被保留”,而只有12%的受訪者說,”我們期望在未來把Unix遷走”。節省成本,是諸多原因中最主要是一個原因。

Weiss說,移值到x86處理器上會越來越快,因爲這些硬件的價值實在是太便宜了。”水平擴展架構,集羣技術,雲計算,虛擬化技術,你只需要把這些技術合併一下,通過這些技術應用的趨勢,我們可以看到操作系統的選擇基本上就是Linux和Windows”,他說。

“例如”,Weiss說,”在最近Cisco宣佈的Unified Computing 架構,你可以擁有網絡,存儲,計算,內存,光纖連接,但你不需要Unix。你可以安裝Linux或Windows並使用x86平臺。所以Intel贏得了Linux取代Unix的那半壁江山”。

The Open Group,目前Single Unix Specification和Unix系統認證的所有者,開始有點退步並有點承認Linux也是一個Unix系統的選擇,因爲Unix是”高端性能,可擴展性和性能可以用於很多相當重要的應用”,而Linux則是一個更爲小的,注重於並不太注重的應用。

AT&T的Korn是其中一個對Unix仍然看到的人。Korn說,Unix的長處是它的歷史,自從1973年來引入”管道”技術,它就可以被分成幾個部分來部署。這會把Unix帶向前方,他說,”這個哲學體系可以運用在雲計算中,在那裏,你只需要創建一些小的可重用的碎片而不是一個巨大的應用”。

Unix傳奇

 

無論最後的Unix命運會怎麼樣,這個從Bell實驗室出生的40歲的傢伙,已經書寫了一段傳奇,而且這個傳奇可能還會繼續幾十年。它影響併產生了一個相當相當長的流行軟件列表,包括給IBM,HP和Sun提供的Unix,以及Apple的Mac OS X和Linux。它同樣影響了Microsoft的Windows NT以及IBM和Microsoft弄出來的DOS。

請你來說

分享你的Unix記憶!

 

因爲Unix,產生了許多公司,並走向了成功,因爲當時Unix給了一個低成本的平臺。在Internet上的服務器,Unix是核心的建築區,今天它也是所有通訊系統的心臟。由它孕育了許多架構上的創意,比如管道,並且,Unix引出的Mach爲科學作出了巨大的貢獻,同時也爲多處理器計算作出了貢獻。

ACM在1983年因爲Unix授予Thompson和Ritchie圖靈獎時說過:”Unix系統最天才的部分是它的framework,它激發了程序員們沿着這一方向工作”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章