【Linux基礎】Linux簡史

混沌初開 
那是在一九九一年,令人痛苦難耐的冷戰漸漸走到了盡頭。和平安詳的空氣開始升起在地平線。在計算科學領域,隨着強大硬件的推出,計算機的極限能力已超出了我們的想象,一個輝煌的未來似乎已漸露端倪。

但,還是缺了點兒什麼?在操作系統領域,存在着一大片空白。

一方面,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: [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])

附:沒錯,它不包含任何minix的代碼,而且它有一個多線程文件系統。它現在不能在其它硬件上轉(因爲用了386任務切換機制,等等),而且除了AT硬盤,它基本上不支持任何其它硬件。這就是全部了。

從這個帖子不難看出, Linus自己並沒預料到他的小創造將會改變整個計算科學領域。 1991年9月中旬,Linux 0.01版問世了,並且被放到了網上。它立即引起了人們的注意。源代碼被下載、測試、修改,最終被反饋給Linus。10月5號, 0.02版出來了,同時伴隨着Linus著名的聲明: 

From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID: <[email protected]>
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目錄裏找到。 

Linus ([email protected])

幾周以後,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 System、KDE、 GNOME), Linux的各個品牌都倍受歡迎。 

好戲連臺,驚喜不斷。除了PC機,Linux又被移植到了許多其它平臺上(PowerPC、Sun Sparc、ARM、Alpha...Debian就支持十幾種CPU)。它還被人安裝到了3com的手掌計算機上。另外,利用集羣技術,許多Linux單機可以被組織成一個整體,用於並行計算。1996年4月, Los Alamos國家實驗室的研究人員利用 68臺Linux單機搭建了一個並行計算系統,用它來模擬YZD爆炸的衝擊波。與其它超級計算機不同的是,用Linux搭建的集羣計算機非常便宜。這種DIY出來的超級計算機只花費$152,000,連人工(連接68臺PC的線纜)都包括了。這價格只是同級別商業機的十分之一。它的峯值計算速度可達每秒190億次(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之父:Linus Torvalds

風雨十年
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追隨者們的GJ把柄。但在過去的幾年間,情況發生了改變。象KDE和GNOME這樣非常專業的桌面環境呈現在了人們的面前。這些桌面環境的較新版本使人們對Linux的“用戶友好性”有了更好的認識。儘管一些鐵桿用戶在報怨,圖形化使***文化失去了其原有的純正品位。但圖形化大大改善了Linux在普通用戶心目中的形象,促進了Linux的流行與推廣。 

KDE 4.7 桌面環境

GNOME 3.0 桌面環境

Linux在第三世界
Linux在發展中國家得到了廣泛的傳播。這也許是它對世界影響最大的地方。在Linux出現之前,發展中國家在計算科學領域大大落後於西方。硬件價格雖然不斷下滑,但在第三世界國家,計算機愛好者們飽有熱情,卻又囊中羞澀。軟件的高昂價格一直是個巨大的經濟負擔。無奈中,他們只能求助於各種各樣的盜版軟件。這直接導致了盜版的泛濫,盜版金額高達數萬億美元。話又說回來,大多數商業軟件的標價都大大超出了發展中國家人民的承受力。舉例來說,一個典型的操作系統軟件至少標價$100。在一個年人均收入只有$200-$300的國家,這$100是個鉅額數字。 

Linux和其它開源軟件的崛起徹底改變了這一切。在適當的減裁之後, Linux可以在硬件配置極低的計算機上運行。這使得Linux成爲窮人的理想選擇。在發達國家已經成爲歷史的老舊機器,比如486/Pentium 1計算機,在發展中國家還在被使用着。Linux使得這些老舊機器繼續發揮作用。在第三世界,高昂的軟件價格是個大問題,所以開源軟件得到了廣泛的傳播。在亞非拉,Linux成了衆多計算機愛好者們的選擇。在世界的各個角落, Linux被本地化。這標誌着它真正走向了全球。 Linux的相關文件被翻譯成了各種語言,包括很多冷門的語言,比如,越南語。 

從桌面系統到超級計算機 
Linus Torvalds當初開發Linux,只是出於一個***的愛好。自從Linux運行在了一個破386機器上以後,到現在,它已經走過了一條很長的路。今天,它最令人矚目的應用領域是大規模並行計算集羣。 

根據世界超級計算機TOP500排名,Linux不僅佔據主導地位,同時它還有將其它對手擠出500強名單之勢。在世界上500臺最快的計算機裏,強勁的開源操作系統Linux佔了其中的485個位子,再創新高。換句話說,世界上最快的計算機裏97%是基於Linux的。

走向未來 
Linux從一個***的個人項目發展到一個遍佈全球的操作系統,這一歷程就象一次生物的進化。八十年代早期, Richard Stallman發起了GNU項目,爲開源軟件的發展奠定了基礎。 Andrew Tanenbaum教授開發的MINIX系統,把操作系統的學習研究從單純的理論教學帶入到實踐階段。最終, Linus Torvalds用他追求完美的無盡熱情催生了Linux。在過去的幾年中,開源社區成千上萬的人們不斷地呵護滋養着它,譜寫了計算機革命史冊的光輝一頁。今天, Linux不再是一個學生***的項目,它成了一個世界範圍的奇蹟。在開源運動的精神感召下,IBM這樣的大公司和千百萬熱情的人們都加入了進來。在計算科學的歷史上,它將是人類最輝煌的成就之一。 

Linux的標誌是一隻小企鵝。不象其它商業操作系統, Linux沒有采用一個令人肅然起敬的徽標。這個穿着黑色燕尾服的小傢伙充分表達了自由軟件運動無憂、無慮、無畏的態度。這個可愛的徽標誕生於一個有趣的小故事。據Linus說,Linux最初並沒有徽標。一次,Linus去南半球某地度假,碰到了一隻企鵝。它長得並不象現在的Linux徽標。Linus想去親近這小傢伙。結果,小企鵝在他手掌上重重地拍了一翅膀。這次有趣的經歷導致了後來Linux徽標的誕生。

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