Linux歷史

歷史上，Linux作業系統內核以其不斷的發展為特點。它的原始碼已經從1991年初次發布的幾個C語言文件擴展到2007年的290MB源文件；發布許可也從禁止商業化發布，變為在通用公共許可證GPL下發布。

## 起源

Unix作業系統在20世紀60年代構思完成並實現，並在1970年首次發布。它因容易獲取與可移植性高而廣泛被學術機構和工商企業採用、複製和修改。它的設計對其他系統的作者影響很大。

在1983年，理察·斯托曼創建了一個自由軟體，類Unix，與POSIX兼容的作業系統為目標的GNU計劃。作為這個計劃其中的一部分，他又寫了GNU通用公共許可證（GPL）。20世紀90年代初，已經有足夠的軟體去創建一個完整的作業系統。但因為在1987年時，理察·斯托曼決定以Mach微內核進行開發，認為可以藉此加速作業系統的開發，但因為一直不確定卡內基梅隆大學何時要將核心原始碼發布，造成項目三年進展緩慢。GNU的內核，GNU Mach和GNU Hurd沒能夠充分吸引開發者，這導致了GNU的未能完成。

在20世紀80年代還有另外一個關於自由作業系統的項目，伯克利軟體套件。這是由UC Berkeley從AT&T的第六版Unix開發而來的。因為它包含了AT&T所擁有的的Unix代碼，所以AT&T在20世紀90年代初對加利福尼亞大學提起了法律訴訟。這嚴重限制了BSD的發展與應用。

MINIX是安德魯·斯圖爾特·塔能鮑姆在1987年發布一個用於教學的微內核架構的類Unix系統。雖然系統的原始碼容易得到，但是對原始碼的修改與再發布卻受到了限制。另外，MINIX的16位的設計與當時日漸便宜及受歡迎的、個人電腦的Intel 80386架構兼容得不好。

這些因素使得Torvalds開始了他的項目。他曾說過，如果那時候有可用的GNU或者386BSD內核的話，他很可能就不會去寫他自己的內核了。

## Linux的誕生

<image>

1991年，在赫爾辛基，Linus Torvalds開始那個後面成為了Linux內核的項目。最初它只是一個Torvalds用來訪問大學裡的大型的Unix伺服器的虛擬終端。他專門寫了一個用於他當時正在用的硬體的，與作業系統無關的程序，因為他要用他那用80386處理器的新PC機的功能。開發是在Minix上，用至今仍為首選的編譯器——GCC——來完成的。

Torvalds在他的書《只為歡樂》中說過，他最後才意識到自己寫了一個作業系統內核。1991年8月25日，他在發布到新聞組「comp.os.minix.」的Usenet上發布了這個系統：

使用minix作業系統的各位，大家好！

我正在為386（486）AT clones寫一個（自由的）作業系統（只是愛好而已，不會和GNU一樣成為廣泛且專業的作業系統）。這個計劃從4月份開始醞釀，現在已做好準備。我希望得到人們關於minix優缺點的任何反饋意見，因為我的作業系統和它有類似的方面（因為可行性方面的原因，兩者的文件系統物理布局相同）。

我剛剛把bash(1.08)和gcc(1.40)移植到了系統上，而且看來運行得很好。這意味著我可以在幾個月內我就可以把它變得有實用性了。我想知道大家想要些什麼特色。歡迎提任何的建議，但是我不保證我會實現你的建議:-)

Linus (torvalds@kruuna.helsinki.fi)

另：是的，它沒有包含任何minix的代碼；它的文件系統還是一個多線程的。它沒有可移植性（它利用了386的任務調度演算法等），而且它很可能永遠只會支持AT的硬碟（我只有這種硬碟:-

Linus Torvalds

## 名稱的由來

Linus Torvalds本要把他的發時叫做Freax——「fread」，「free」和「x」（暗指Unix）的合成詞。在開發系統的前半年裡，他把文件以文件名「Freax」存儲。Torvalds考慮過Linux這個名字，但是因為覺得它過於自我本位而放棄了使用它。

為便於開發，在1991年9月，他把那些文件上傳到了赫爾辛基工業大學（HUT）的FTP伺服器（ftp.funet.fi)。Torvalds在HUT負責管理那個伺服器的同事Ari Lemmke，覺得「Freax」這個名字不是很好，就在不諮詢Torvalds的情況下，把項目的名字改成了「Linux」。但是之後，Torvalds也同意「Linux」這個名字了：「經過多次討論，他承認Linux這個名字更好。在0.01版本Linux的原始碼的makefile里仍然使用『Freax'這個名字，在之後『Linux'這個名字才被使用。所以，Linux這個名字並不是預先想好的，只是它被廣泛接受了而已」。

## GNU GPL下的Linux

Torvalds先是在它自己的許可下發布Linux內核的，即限制它用於商業活動。和這個內核一起使用的軟體是發布在GPL這個自由軟體許可下，屬於GNU計劃一部分的軟體。第一次發布的Linux內核，版本0.01，包含了GNU的Bash的二進位版本。

在版本0.01的備註中，Torvalds列出了運行Linux所需的GNU軟體：

很不幸，單單一個內核是什麼都做不了的。要讓一個系統能夠工作，還需要一個shell，編譯器，函數庫等等。這些各是獨立的部分，它們有著或松或緊的版權限制。與linux一起使用的大多是GNU的軟體，而這些軟體是非盈利版權限制的。在Linux的發布版本裡沒有包含這些工作——你可以向我（或者GNU）索取更多的資訊。

1992年，他建議在GPL下發布內核。他先在版本0.12中宣布了這個決定。1992年12月中，他在GNU GPL下發布了0.99版。Linux和GNU的開發者一起把GNU的部件和Linux集成起來，使它成為一個可運行的自由作業系統。Torvalds說，「把Linux發布在GPL下是我所做過的最好的事。」

### 關於GNU/Linux命名方式的爭議

「Linux」這個名稱一開始只被Torvalds用於Linux內核。但是這個內核卻常和其他軟體一起使用，尤其是GNU計劃的軟體。這很快就成為最受歡迎的GNU軟體。1994年六月，在GNU的期刊中，Linux被稱作「自由Unix克隆版」，Debian計劃也開始把它的產品叫做「Debian GNU/Linux」。1996年5月，Richard Stallman發布了編輯器Emacs的19.31版本，其中系統的名稱從Linux變成了Lignux。這種拼法為的是明確指出GNU和Linux的結合。但是這不久就被「GNU/Linux」所代替了。

對這個名稱，不同人有不同的反應。GNU和Debian項目使用那個名字，但是，多數開發者仍然簡單地用「Linux」來指代它們的結合。

## 官方吉祥物

<image>

1996年，Torvalds為Linux選定了企鵝作為它的吉祥物。Larry Ewing提供了吉祥物的初稿。現在正在使用的著名的吉祥物就是基於這份初稿的。James Hughes根據「Torvalds's Unix」為它取了名字Tux。

## 新的發展

### 內核

除了Torvalds，還有許多知名的如阿蘭考克斯Alan Cox和馬塞洛托薩蒂Marcelo TosattiLinux內核維護者。

Cox維護2.2版的內核直到2003年底，同樣, Tosatti維護2.4版的內核直到2006年年中，程式設計師Andrew Morton 帶動了於2003年12月18日發布的首個穩定版本-2.6版內核的開發和維護。而舊版本也還在持續地改進中。

Linux在多方面成功應用，其主要原因在於它是自由軟體和它的軟體的穩定性、安全性和可擴展性，以及因此而帶有的可維護性。雖然確實存在著漏洞，例如vmsplice exploit，但是這些漏洞會很快被修復。

### 社區

關於Linux的大部分工作都是由社區完成的：世界各地使用Linux的程式設計師都把建議的改進發給維護員。很多公司還不但參與內核的開發，還參與了一些隨Linux一起發布的輔助軟體的編寫。

Linux的版本當中，既有像Debian那樣由自發組織發布的，又有像openSUSE和Fedora那樣直接和一些公司相關的。為了交換意見，各個項目的成員常在各種會議交流會上會面。其中最大的交流會是在德國（目前是柏林）舉行的LinuxTag。每年有大約10,000人聚集在一起討論Linux以及與Linux相關的項目。

### 開源發展實驗室和Linux基金會

開源碼發展實驗室（Open Source Development Lab）創立於2000年。它是一個獨立的非營利性組織。它的目標是優化Linux以應用於數據中心和運營商的領域。它是Linus Torvalds和Andrew Morton工作的贊助來源。2006年年中，Morton去了Google（Google也是使用Linux內核的）；Torvalds全職為OSDL開發Linux內核。非商業性運營機制的資金主要來源於Red Hat、Novell、三菱、英特爾、IBM、戴爾和惠普等幾家大公司。

2007年1月22日，OSDL和自由標準組織合併為Linux基金會，把它們的工作焦點集中在改進GNU/Linux以與Windows競爭。

### 相關公司

雖然是開源項目，但是還是有一些公司從中獲取了利益。這些公司大多也是開源發展實驗室的成員。它們在Linux的改進與開發中投入了許多資源以使其能夠適應不同領域的應用。其中包括驅動程序捐贈的硬體，對開發Linux軟體的人員現金的捐贈，以及對Linux程式設計師的雇用。例如IBM和HP，它們首先在它們的伺服器上使用了Linux；又如Red Hat，它維護著它自己的版本。同樣，Trolltech通過對Qt的開發和把它GPL許可化，以及啟用一些X和KDE開發人員來支持Linux。前者更使得開發KDE成為了可能。

## 關於Linux的爭論

Linux自出現以來就已經引起了反覆的爭議。

### 「Linux已經過時」

1992年，著名的電腦科學家，Minix和微核心的作者，安德魯·斯圖爾特·塔能鮑姆在新聞組`comp.os.minix`上寫了一篇題為《Linux已經過時》的文章。這篇文章標誌著對Linux內核的著名的大討論的開始。其中對Linux的批評主要是：

- 該內核是單核心的，因此它是過時的。
- 因使用Intel 386處理器而帶來的不可移植性。「寫一個與某特定硬體，特別是像Intel這種奇怪的硬體相關的作業系統，在根本上就是錯誤的。」。
- 沒有個人嚴格控制原始碼。
- Linux使用了一系列無用的特色（他認為多線程的文件系統只會使用系統性能低下）。

事實證明，塔能鮑姆認為Linux會在幾年之內就會過時並被GNU Hurd取替（他認為GNU Hurd更為現代化）的看法是錯誤的。Linux已經被移植到所有主流的平台，而且它開放的開發模式引領了一種傑出的開發步伐。相反，GNU Hurd還沒有擁有可作為產品伺服器的穩定性水平。

### 來自微軟的競爭

雖然Torvalds說過微軟感到的來自Linux的威脅與他無關，但是微軟和Linux陣營在1997年到2001年間還是有著很多敵對的情況。這種情況在1998年Eric S. Raymond發表《萬聖節文件》的時候變得明顯起來。這裡由一位微軟工程師寫的關於尋求解決自由軟體對微軟的威脅的策略的文章。

### SCO

2003年3月，SCO Group指責IBM把UNIX的代碼移植到Linux侵犯了他們的版權。SCO聲稱它們擁有代碼的版權並對IBM提起了訴訟。Red Hat又提起了反訴訟，因此SCO又提起了其他相關的訴訟。在這些訴訟進行的同時，SCO開始把Linux的許可權賣給那些不願意冒受SCO投訴的險的使用者。因為Novell也聲稱擁有UNIX的版權，所以它又對SCO提起了訴訟。接著SCO便宣告破產了。

### 名稱的商標

Linux是Linus Torvalds的註冊商標。

### 商標權

在1994和1995年，有多個來自不同國家的人想把Linux註冊為商標，從而一些Linux公司可以從中收取特許使用金。很多Linux的開發人員和使用者都不同意此舉。Torvalds在Linux國際的幫助下得到了Linux這個商標，然後他把這個商標轉讓給了Linux國際。對這個商標的保護後來就由一個專門的基金會——非營利性的Linux標識協會——來管理。2000年，Linus Torvalds指定了分配許可權的基本規則。這意味著任何要想以Linux的名義發布產品和服務的人，都要擁有許可證。而許可證要通過購買獲得。

## 大事年表

- 1983：Richard Stallman發起以創建一個自由的作業系統為目標的GNU計劃。
- 1989：Richard Stallman撰寫第一版的GNU GPL。
- 1991：Linux內核在8月25日由21歲的芬蘭學生Linus Benedict Torvalds公開發布。
- 1992：在GNU GPL下Linux內核被重新授權使用，產生第一個「Linux發行版本」。
- 1993：超過100個開發者致力於Linux內核開發。在他們的努力下，內核逐漸適應GNU的環境，這個為Linux創造巨大的應用空間的廣闊環境。Slackware首次發布。後來在同一年，Debian項目設立，現已成為最大的社區發布項目。
- 1994: 3月, Torvalds認為內核的所有組件已經完全成熟，他放出了Linux的1.0版本。XFree86項目組提供了一個圖形化使用者界面（GUI）.同年Red Hat公司和SUSE發行他們各自的Linux 1.0分發版本。
- 1995: Linux被移植到DEC Alpha和Sun公司的SPARC平台上，而在接下來的幾年裡它又被廣泛地移植到更多的平台上。
- 1996: Linux內核2.0版本發布。此時內核已經支持多處理器，因而成為各大公司的絕佳選擇。
- 1998：很多大公司，諸如IBM、Compaq，Oracle表示支持Linux系統。另外，一部分程式設計師開始圖形化使用者界面KDE的開發。
- 1999：一些程式設計師開始致力於開發圖形化環境GNOME，它可以替代依靠Qt工具包才能工作的KDE。在這一年裡IBM宣布一項支持Linux的浩大的工程。
- 2004: XFree86小組分裂，同現有的X Windows標準組織 共同成立X.Org基金會，促使了X Window ServerLinux版本極其快速而迅猛的發展。