Linux簡史
原著:Ragib Hasan
Department of Computer Science
University of Illinois at Urbana-Champaign
翻譯:王曉林
v2.2.0
作于: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就是這些學生中的一個。
呱呱墜地
在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被公認為世界上最高效最強健的編譯器之一。
Richard Stallman,GNU項目的創始人
|
到1991年,GNU項目已經開發出了眾多的工具軟件。大家期待已久的GNU C編譯器也問世了。但自由操作系統還沒有。MINIX也是受版權約束的(后來,在2000年4月,Tanenbaum在BSD許可證下發布了自由的MINIX)。GNU操作系統內核--HURD--還在開發之中,幾年之內還不可能面世。
拖了這么久,終于該說說Linus了。
1991年8月25號,Linus在MINIX新聞組發出了歷史性的一貼...
From: torvalds@klaava.Helsinki.FI (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: <1991Aug25.205708.9541@klaava.Helsinki.FI> |
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 (torvalds@kruuna.helsinki.fi)
PS. 沒錯,它不包含任何minix的代碼,而且它有一個多線程文件系統。它現在不能在其它硬件上轉(因為用了386任務切換機制,等等),而且除了AT硬盤,它基本上不支持任何其它硬件。這就是我的全部了 :-(。
從這個帖子不難看出,Linus自己并沒預料到他的小創造將有本事改變整個計算科學領域。1991年9月中旬,Linux 0.01版問世了,并且被放到了網上。它立即引起了人們的注意。源代碼被下載、測試、修改,最終被反饋給Linus。10 月5號,0.02版出來了,同時伴隨著Linus著名的聲明:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) |
Newsgroups: comp.os.minix |
Subject: Free minix-like kernel sources for 386-AT |
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI> |
Date: 5 Oct 91 05:41:06 GMT |
Organization: University of Helsinki |
|
你在懷念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)
>> Linux除了有一個酷名字以外,誰能說說為什么我該用Linux而不是BSD?
> 不,這就夠了,有個酷名字就夠了。在取名方面,我們花了老大的力氣,希望它的名字能引起大家的興趣。這招挺有效,數以千計的人們選擇了Linux,就是為了說:“OS/2?哈。我有Linux。多酷的名字。”386BSD的名字里有太多數目字和奇怪的縮寫,太失敗了。聽起來太技術化,把人都嚇跑了。
(摘自Linus Torvald的一個關于Linux的跟貼)
> 有朝一日,大家覺得有人能把Linux搞得更好的時候(自由軟件基金會就是個選擇),我就“退位”。我覺得這還不是我們現在該操心的事情,至少在可見的將來還不會發生。我喜歡搞Linux,盡管工作量不小。而且我還沒聽到有人報怨我(也就聽到些很小聲的提醒,都是關于我忘了或者忽略了某個小補丁。至今也沒有什么真正的負面反映)。
> 別誤會,我上面這些話并不是說一旦有人報怨我,我就撂挑子不干了。我皮很厚(Lasu正在我背后偷看我寫這些東西,他說“更確切地說該是‘臉皮’很厚”),厚得足以接受些難聽的話。如果不是這樣,早在聽到ast(譯注:Andrew S. Tanenbaum)嘲笑我模仿、復制minix的時候,我就停止開發了。我只是想說, Linux到現在一直是我的寶貝兒,如果有人想把它搞得更好,我不會死抱不放、舍不得撒手的。
Linus
> 嘿,也許我該到教皇那兒申請個圣徒的頭銜。誰知道教皇的email?很高興我讓你惡心了。
(摘自Linus給某位為Linux未來表示擔憂的人的回復)
當你向人炫耀“我寫了個能搞死Windows的程序”的時候,大家會木然地盯著你說“呵,我Linux系統里有得是這類程序,而且這系統不花錢”。
(By Linus Torvalds)
年譜
日期 |
事件 |
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用戶俱樂部中的交流。謝謝大家。
本文涉及的所有資料的版權屬于資料的原作者。所有的商標都屬于它們的公司。 Microsoft和Windows是微軟公司的注冊商標。
本文的版權屬于Ragib Hasan(1991+),作者保留所有版權。但不必擔心,本文的任何部分都可以隨意復制,前提是事先征得作者的同意。很簡單,只要給他發個email就行了,不收錢。歡迎大力弘揚自由軟件運動的精神。
如有任何建議和更正,請聯系:
Ragib Hasan |
|
Department of Computer Science |
|
University of Illinois at Urbana-Champaign, |
|
Urbana, IL 61801 |
|
United States |
|
電子郵件:ragibhasan aaaaht gmail daaawt com (你明白我的意思 ;-) |
|
本文可以從下列網址獲得:
中文PDF版可以從這里獲得。
中文TeX源文件可以從這里獲得。
關于中文翻譯的任何意見和問題,歡迎與我聯系。
Linux簡史
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright ? 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright ? 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 History_of_Linux.tex
The translation was initiated by WANG Xiaolin on 2006-01-15
WANG Xiaolin 2006-01-15
posted on 2006-01-16 23:24
小力力力 閱讀(1004)
評論(0) 編輯 收藏 所屬分類:
收藏