原著:ragib hasan
department of computer science
university of illinois at urbana-champaign
翻譯:王曉林
作于:2002年7月
譯于:2006年1月
混沌初開
那是在一九九一年,令人痛苦難耐的冷戰漸漸走到了盡頭。和平安詳的空氣開始升起在地平線。在計算科學領域,随着強大硬體的推出,計算機的極限能力已超出了我們的想象,一個輝煌的未來似乎已漸露端倪。
但還是缺了點兒什麼。在作業系統領域,存在着一片巨大的空白。
一方面,dos還統治着龐大的個人電腦王國。比爾蓋茨花$50,000從一個西雅圖黑客手中買來dos。之後,靠着聰明的市場政策,這個簡陋的作業系統悄悄滲透到了世界的每一個角落。pc使用者沒有其它的選擇。蘋果機雖好,但它的天價沒人能承受得起。它和大衆需求保持着遙不可及的距離。
計算領域的另一個陣營是unix世界。但unix更是貴不可攀。為了追求高額利潤,unix銷售商把價格擡得足以吓跑随便哪個pc使用者。貝爾實驗室曾慷慨地提供unix的源代碼給大學。但現在,這些源代碼被小心地看管起來,不再對外公開。更令全球pc使用者心煩的是,軟體市場的大玩家們沒能為解決這一問題提供個有效的方案。
minix似乎是個選擇。它是美裔荷蘭教授andrew s. tanenbaum從零開始編寫出來的。他寫minix的目的是為了向學生講授作業系統的内部工作原理。minix的設計面向當時最為流行的intel 8086微處理器。
作為一個作業系統,minix算不上一流。但它的好處是你能得到它的源代碼。隻要你有tanenbaum寫的《作業系統:設計與實作》這本書,你就能得到那12,000行用c和彙編寫的源碼。頭一次,程式員或黑客可以有機會讀一讀作業系統的源碼--這種被軟體商嚴加看管的東西。tanenbaum用詳盡簡潔的筆觸探讨了編寫作業系統的藝術。他是個一流的作者,迷住了一批當時計算機領域最聰明的大腦。全世界學計算機的學生都在鑽研這本書,通過讀它的源碼來了解他們電腦裡運作的minix作業系統。
linus torvalds就是這些學生中的一個。
linux的誕生
在1991年,linus benedict torvalds還是個芬蘭學生,在赫爾辛基大學念計算機專業二年級。同時他也是個自學成才的黑客。這個長着沙灘黃頭發、說話軟綿綿的二十一歲芬蘭帥哥喜歡折騰他的電腦,把它不斷推向能力的極限。但他缺少一個合适的作業系統來滿足他如此專業的需求。minix不錯,可它隻适合學生,是個教學工具,而不是一個強大的實戰系統。
當時,全世界的程式蟲們都很看好richard stallman的gnu項目---一個緻力于推出自由、高品質軟體的運動。在計算科學的王國裡,stallman是個倍受尊崇的神話式英雄。他令人景仰的職業生涯是從大名鼎鼎的mit人工智能實驗室開始的。七十年代中後期,他在那裡開發出了著名的emacs編輯器。八十年代早期,商業軟體公司從人工智能實驗室吸引走了絕大多數優秀的程式員,并和他們簽署了嚴格的保密合同。stallman為此大大不爽。他認為軟體和其它産品不同,在複制和修改方面它不該受到任何限制。隻有這樣,才能開發出更好更強的軟體。1983年,他在著名的《gnu宣言》中,向世人宣告了gnu項目的啟動,開始了貫徹其哲學的自由軟體運動(順帶一句,gnu一詞是‘gnu's not unix’的遞歸縮寫)。為了最終實作開發出一個自由作業系統的夢想,他得先制造些工具。于是,在1984年初,stallman開始創作一個令商業企業程式員歎服的作品--gnu c編譯器(gcc)。他出神入化的技術天才,令所有商業軟體程式員自愧不如。gcc被公認為世界上最高效最強健的編譯器之一。
到1991年,gnu項目已經開發出了衆多的工具軟體。大家期待已久的gnu c編譯器也問世了。但自由作業系統還沒有。minix也是受版權限制的(後來,在2000年4月,tanenbaum在bsd許可證下釋出了自由的minix)。gnu作業系統核心--hurd--還在開發之中,幾年之内還不可能面世。
拖了這麼久,終于該說說linus了。
1991年8月25号,linus在minix新聞討論區發出了曆史性的一貼...
from: [email protected] (linus benedict torvalds) newsgroups: comp.os.minix subject: what would you like to see most in minix? summary: small poll for my new operating system message-id: <[email protected]> date: 25 aug 91 20:57:08 gmt organization: university of helsinki
hello,各位使用minix的朋友,
我正在寫一個基于386(486)at機器的(自由)作業系統(隻是出于愛好,不會做得象gnu那麼大、那麼專業)。我從四月份開始醞釀,現在已經做得差不多了。我現在想知道一些你們對minix的看法,它哪點好?哪點不好?因為我這個作業系統和 minix多少有點兒類似(檔案系統采用同樣的實體布局(因現實原因),其它方面也有類似的地方)。我已經把bash(1.08)和gcc(1.40)移植過來了,它們好象還工作。這意味着在下面幾個月裡,我将給它加上更多實際的功能。是以我想知道大家都希望它有哪些功能。歡迎多提建議,但我不敢保證能實作你的建議 :-) linus ([email protected])
ps. 沒錯,它不包含任何minix的代碼,而且它有一個多線程檔案系統。它現在不能在其它硬體上轉(因為用了386任務切換機制,等等),而且除了at硬碟,它基本上不支援任何其它硬體。這就是我的全部了 :-(。
從這個文章不難看出,linus自己并沒預料到他的小創造将有本事改變整個計算科學領域。1991年9月中旬,linux 0.01版問世了,并且被放到了網上。它立即引起了人們的注意。源代碼被下載下傳、測試、修改,最終被回報給linus。10 月5号,0.02版出來了,同時伴随着linus著名的聲明:
你在懷念minix-1.1時代的美好時光嗎?那時你自己寫着驅動,充滿了成就感。現在沒什麼好項目可做了,是嗎?你在拚命啃一個作業系統,修改它以滿足你自己的需要,是嗎?現在minix已經沒什麼需要你去改進的了,你為此怅然若失,是嗎?沒機會再熬通宵去改進一個小程式了,是嗎?如果是這樣的話,那這個文章就是給你的 :-)
一個月(?)前我曾經提到過,我正在一個at-386計算機上開發一個自由版本的、類似minix的作業系統。現在它終于可以用了(盡管未必能滿足你的期待)。我樂意把源代碼公開出來,讓它傳播得更廣。它現在僅僅是0.02版(外加一個(很小的)更新檔)。但是我已經成功地在它上面跑了 bash/gcc/gnu-make/gnu-sed/compress等程式。我這個小寶貝兒的源程式在 nic.funet.fi (128.214.6.100) 下面的 /pub/os/linux 目錄中可以找到。該目錄中還有些 readme 檔案,還有幾個在linux下能工作的可執行檔案(bash,update和gcc,你還要求些什麼呢 :-)。完整的核心源代碼都在這兒了,因為沒有用到minix 的源程式。函數庫的源程式隻是部分開放,是以目前還不能提供出來。拿到源代碼後,直接編譯就行了。編譯完就能轉了。哈哈。可執行程式(bash和gcc)的源代碼可以在同一網站的/pub/gnu目錄裡找到。
幾周以後,linux 0.03版釋出了。12月份,0.10版釋出了。這時的linux還顯得很簡陋。它隻能支援at硬碟,而且不用登入(啟動就進bash)。0.11版有了不少改進,可以支援多國語言鍵盤、軟驅、vga、ega、hercules等等。linux的版本号從0.12直接上升到了0.95、0.96......不久,linux的源代碼就通過在芬蘭和其它一些地方的ftp站點傳遍了全世界。
沖突與發展 不久,linus開始面對挑戰。他面對的不是别人,正是andrew tanenbaum,那個開發出minix的偉大教師。在給linus的一個回貼中,tanenbaum寫到:
“我還是堅持我的觀點,在1991年還設計這樣一個整體架構的核心是個根本性的錯誤。你該慶幸不是我的學生。這麼個設計,在我這兒你得不了高分 :-)” (andrew tanenbaum to linus torvalds)
linus後來承認說,這是他關于開發linux所得到的最壞評價。tanenbaum是當時的知名教授,他說的話自然很有份量。但這次面對linux,他的話沒能奏效,因為linus不是個輕易服輸的人。
tanenbaum還說:
“linux過時了。”
現在輪到新的linux一×××始反擊了。以強大的linux社群為後盾,linus給了 tanenbaum一個恰如其分的回複:
你的工作是教授、研究員。這對于minix的大腦損傷是個絕妙的解釋。 (linus torvalds to andrew tanenbaum)
linux的開發在繼續。不久,加入開發的人數就超過了一百,然後是數千,然後是數十萬。linux不再隻是個黑客的玩具,配合上gnu項目開發出的衆多軟體, linux已經可以走向市場了。它最終在gnu公共許可證下釋出,這保證任何人都可以自由獲得它的源代碼,可以自由複制、學習和修改它。學生和程式員們都沒錯過這個機會。
不久,軟體商們也來了。linux是自由的作業系統。軟體商們需要做的隻是把各種各樣的軟體在linux平台上編譯,然後把它們組織成一種可以推出上市的形式。這和其它作業系統在運作模式上沒什麼差別,隻是linux是自由的。redhat、 caldera、和其它一些公司都獲得了相當大的市場,獲得了來自世界各地的使用者。除了這些商業公司,非商業的程式設計專家們也志願地組織了起來,推出了他們自己的品牌--享譽全球的debian。配上嶄新的圖形界面(比如x window、kde、 gnome),linux的各個品牌都倍受歡迎。
好戲連台,驚喜不斷。除了pc機,linux又被移植到了許多其它平台上(powerpc、sun sparc、arm、alpha...debian就支援十幾種cpu)。它還被人安裝到了3com的手掌計算機上。另外,利用叢集技術,許多linux單機可以被組織成一個整體,用于并行計算。1996年4月,los alamos國家實驗室的研究人員利用68台 linux單機搭建了一個并行計算系統,用它來模拟×××爆炸的沖擊波。與其它超級計算機不同的是,用linux搭建的叢集計算機非常便宜。這種diy出來的超級計算機隻花費$152,000,連人工(連接配接68台pc的線纜)都包括了。這價格隻是同級别商業機的十分之一。它的峰值計算速度可達每秒19萬億(billion)次。在世界最強的超級計算機中它排在第315位。它也極其穩定可靠,投入運作三個月後,還不必去重新開機動。
今天,linux最大的優勢就是推動它前進的巨大開發熱情。一旦有新硬體問世, linux核心就能快速被改進以适應它。比如,intel xeon微處理器才問世幾個星期,linux新核心就跟上來了。它還被用在了alpha、mac、powerpc上。甚至在手掌機這一少人問津的領域都可以運作linux。正如它在1991年誕生時那樣,linux正以同樣的熱情闊步走向新世紀。
至于linus本人,他保持着簡單的生活。不象比爾蓋茨,linus不是億萬富翁。完成學業之後,他移居美國,在transmeta公司找了個工作。transmeta公司在指導完成了一個絕密項目的研發之後,推出了自己的crusoe處理器。linus是這個研發小組中活躍的一員。最近,他和tove結了婚,生了個女兒,取名patricia miranda torvalds。世界範圍内的計算機社群都對linus推崇備至,到目前為止,他是我們這個星球上最受歡迎的程式員。
風雨十年
linux的開發已經走過了十個年頭。它用十年的蓬勃發展否定了所有持懷疑态度的警告和預言。今天,linux是有史以來發展速度最快的作業系統之一。從91、92年的幾個技術狂熱者發展到今天數以百萬計的普通使用者,這絕對是個不平凡的曆程。大商業公司們“發現”了linux,将數以百萬計的美元傾入到開發中來,這一事實無情地駁斥了“開源運動反商業”的謬論。ibm曾經視開源社群為洪水猛獸。而現在,它已經将大量的資金轉移到以linux為平台的開源解決方案中來。
但真正讓人感到驚喜的是,linux開發團隊持續不斷地壯大,并在世界範圍内擴散開來。這些開發者以旺盛的精力和高漲的熱情不斷改進着linux的功能和性能。linux的開發工作并沒有象“代碼封閉論者”所妄言的那樣“最終消失在一片混亂之中”。正相反,linux的開發是有組織有秩序的,它采用的是一種精心設計并被細心維護的開發模式。在這一高效開發模式下,數以千計的開發者們把各種各樣的應用軟體注入到linux平台中來。
商業企業不再對linux心懷戒懼,因而大量的軟體商開始提供linux平台上的産品支援,軟體品質有了更可靠的保障,在辦公室裡用linux不必再有“風險自負” 的擔心了。說到可靠性,linux在1999年cih病毒肆虐和一年後的‘愛蟲’病毒流行時,證明了自己的強健。這些相當簡單的小病毒把世界搞得一團糟,而所有的linux機器卻絲毫不受影響。這充分顯示了它出色的免疫力。當redhat這樣的 linux排頭兵走向市場的時候,它們受到了熱烈的歡迎。甚至在近幾年dot-com 網絡泡沫破滅之後,它們還在持續蓬勃地發展壯大。這也大大增強了人們對 linux的信心,許多大大小小的商業公司開始采用linux作伺服器和工作站平台,把linux作為辦公室系統的可靠支撐。
linux桌面應用的崛起
那麼,針對linux人們報怨最多的是什麼呢?在過去,也許就數它的字元界面了。很多對linux感興趣的人被傳統的字元界面吓着了。“字元界面可以讓你無所不能”,一些執着的黑客會向你這樣辯解。但對于數百萬的普通使用者,這意味着要花費大量的時間和精力去學習它。現成的x window圖形界面和視窗管理器并不能滿足普通計算機使用者的期待。這一直是ms windows追随者們的攻擊把柄。但在過去的幾年間,情況發生了改變。象kde和gnome這樣非常專業的桌面環境呈現在了人們的面前。這些桌面環境的較新版本使人們對linux的“使用者友好性” 有了更好的認識。盡管一些鐵杆使用者在報怨,圖形化使黑客文化失去了其原有的純正品位。但圖形化大大改善了linux在普通使用者心目中的形象,促進了 linux的流行與推廣。
linux在第三世界
linux 在開發中國家得到了廣泛的傳播?這也許是它對世界影響最大的地方。在linux出現之前,開發中國家在計算科學領域大大落後于西方。硬體價格雖然不斷下滑,但在第三世界國家,軟體的高昂價格一直是有熱情、沒銀子的計算機愛好者們的巨大負擔。無奈中,他們隻能求助于各種各樣的盜版軟體。這直接導緻了盜版的泛濫,盜版金額達數萬億美元。話又說回來,大多數商業軟體的标價都大大超過了開發中國家人民的承受力。舉例來說,一個典型的作業系統軟體至少标價$100。在一個年個人所得隻有$200-$300的國家,這$100是個巨額數字。
linux和其它開源軟體的崛起徹底改變了這一切。在适當的縮減之後,linux可以在硬體配置極低的計算機上運作。這使得linux成為窮人的理想選擇。在發達國家已經成為曆史的老舊機器,比如486/pentium 1計算機,在開發中國家還在被使用着。linux使得這些老舊機器繼續發揮作用。由于在窮國,高昂的軟體價格是個大問題,是以開源軟體得到了廣泛的傳播。在亞非拉,linux成了廣大計算機愛好者們的選擇。在世界的各個角落,linux被本地化。這标志着它真正走向了全球。linux的相關檔案被翻譯成了各種語言,包括很多冷門的語言,比如,越南語。
從桌面系統到超級計算機
linus torvalds當初開發linux,隻是出于一個黑客的愛好。自從linux運作在了一個破386機器以後,到現在,它已經走過了一條很長的路。今天,它最令人矚目的應用領域是大規模并行計算叢集。
2001年8月,bbc報道說,美國政府正在計劃一個超大規模計算機。這個超級計算機将能夠進行每秒13百億億(13 trillion)次計算(13.6 teraflops)。這一項目被命名為“teragrid”,是一個由四個美國超級計算中心組成的網絡。這四個超級計算中心是:
national center for supercomputing applications at the university of illinois(ncsa)
san diego supercomputer center (sdsc) at the university of california
argonne national laboratory in chicago
california institute of technology in pasadena
在每個計算中心都有一個linux超級計算機叢集。在teragrid網中,總共将會有超過3000個處理器進行并行運算。
道路在延伸
linux從一個黑客的個人項目發展到一個遍布全球的作業系統,這一曆程就象一次生物的進化。八十年代早期,richard stallman發起了gnu項目,為開源軟體的發展奠定了基礎。andrew tanenbaum教授開發的minix系統,把作業系統的學習研究從單純的理論教學帶入了實踐階段。最終,linus torvalds用他追求完美的無盡熱情催生了linux。在過去的幾年中,開源社群成千上萬的人們不斷地呵護滋養着它,譜寫了計算機革命史冊的光輝一頁。今天,linux不再是一個學生黑客的項目,它成了一個世界範圍的奇迹。在開源運動的精神感召下,ibm這樣的大公司和千百萬熱情的人們都加入了進來。在計算科學的曆史上,它将是人類最輝煌的成就之一。
穿黑色燕尾服的小家夥:linux吉祥物
linux的标志是一隻小企鵝。不象其它商業作業系統,linux沒有采用一個令人肅然起敬的徽标。這個穿着黑色燕尾服的小家夥充分表達了自由軟體運動無憂、無慮、無畏的态度。這個可愛的徽标誕生于一個有趣的小故事。據linus說,linux最初并沒有徽标。一次,linus去南半球某地度假,碰到了一隻企鵝。它長得并不象現在的linux徽标。linus想去親近這小家夥。結果,小企鵝在他手掌上重重地拍了一翅膀。這次有趣的經曆導緻了後來linux徽标的誕生。

趣事
下面是一些linus的名言。
dijkstra八成讨厭我 (linus torvalds, in kernel/sched.c)
“我怎麼知道它轉不轉?這是beta測試該做的事情。我隻管編碼。” (linus torvalds的個性寫照。摘自某個文章)
“我真白癡...至少這個bug花了我五分鐘才找到...” (linus torvalds 給一個bug報告的回應)
“如果你想周遊世界,想被邀請去到處演講,那就寫個unix作業系統吧。” (by linus torvalds)
&gt;&gt; linux除了有一個酷名字以外,誰能說說為什麼我該用linux而不是bsd? &gt; 不,這就夠了,有個酷名字就夠了。在取名方面,我們花了老大的力氣,希望它的名字能引起大家的興趣。這招挺有效,數以千計的人們選擇了linux,就是為了說:“os/2?哈。我有linux。多酷的名字。”386bsd的名字裡有太多數目字和奇怪的縮寫,太失敗了。聽起來太技術化,把人都吓跑了。 (摘自linus torvald的一個關于linux的跟貼)
&gt; 有朝一日,大家覺得有人能把linux搞得更好的時候(自由軟體基金會就是個選擇),我就“退位”。我覺得這還不是我們現在該操心的事情,至少在可見的将來還不會發生。我喜歡搞linux,盡管工作量不小。而且我還沒聽到有人報怨我(也就聽到些很小聲的提醒,都是關于我忘了或者忽略了某個小更新檔。至今也沒有什麼真正的負面反映)。
&gt; 别誤會,我上面這些話并不是說一旦有人報怨我,我就撂挑子不幹了。我皮很厚(lasu正在我背後偷看我寫這些東西,他說“更确切地說該是‘臉皮’很厚”),厚得足以接受些難聽的話。如果不是這樣,早在聽到ast(譯注:andrew s. tanenbaum)嘲笑我模仿、複制minix的時候,我就停止開發了。我隻是想說, linux到現在一直是我的寶貝兒,如果有人想把它搞得更好,我不會死抱不放、舍不得撒手的。 linus
&gt; 嘿,也許我該到教皇那兒申請個聖徒的頭銜。誰知道教皇的email?很高興我讓你惡心了。 (摘自linus給某位為linux未來表示擔憂的人的回複)
當你向人炫耀“我寫了個能搞死windows的程式”的時候,大家會木然地盯着你說“呵,我linux系統裡有得是這類程式,而且這系統不花錢”。
年譜
日期
事件
1984年1月
richard stallman從mit辭職,開始了他的gnu項目。
1985年某月
richard stallman成立了自由軟體基金會。
1985年3月
richard stallman在dr. dobb's雜志上發表了《gnu宣言》。在宣言中,他陳述了自由軟體運動的起因。
1991年8月25号
linus在usenet新聞討論區上公開了關于linux的構想。
1991年9月
linux 0.01版在網上釋出。
1992年1月
第一個linux新聞討論區誕生:alt.os.linux。
1992年4月
ari lemmke在usenet上創立了廣受歡迎的comp.os.linux新聞討論區。
1992年11月
adam richter宣布他的公司推出了第一個linux發行版: yggdrasil。
1993年6月
peter volkerding推出了著名的linux發行版:slackware。
1993年8月
matt walsh推出《linux安裝與入門:第一版》。
1994年3月
linux核心1.0版問世。
參考連結
下面是一些關于linux曆史的參考連結,也許對你有幫助。
www.linux.org,一個回答linux相關問題的網站。 www.cs.helsinki.fi/u/~torvalds,linus torvalds的個人網站。上面有一些關于linus一家的照片和趣事。 www.slashdot.org,一個專門針對geeks和技術癡迷者的網站。上面有很多關于linux和其它自由技術的資訊。 http://en.wikipedia.org/wiki/linux,wikipedia上關于linux的文章。 http://en.wikipedia.org/wiki/gnu,wikipedia上關于gnu項目的文章。
鳴謝與版權聲明
曆史通常是枯燥乏味的,但計算科學和 linux的曆史卻是相當有趣的。這篇文章中的大多數資訊都取自網際網路。它的很多靈感來源于在孟加拉linux使用者俱樂部中的交流。謝謝大家。