FlossDoc: 請協力 GPLv3 的中文翻譯工作。

Linux

FlossDoc,自由中文開源知識庫

Jump to: navigation, search

Linux (/ˈlɪnəks/ 或 /ˈlɪnʊks/) 是一個仿 Unix 的作業系統 GNU/Linux 核心 (kernel)。1991 年,芬蘭赫爾辛基大學學生 Linus Torvalds (當時21歲) 為了自己使用與學習需要,開發了在 80386 平台上運行而擬似 Unix 的作業系統 – Linux。Linus 將 Linux 的源代碼在互聯網上發放,迅速被廣泛使用甚至吸引大量電腦發燒友加入協力開發及改良 Linux。經過十多年的努力,Linux 被應用到多個範籌,小至手錶、PDA 等嵌入式系統、個人電腦桌面,大至過千個叢集節點的超級電腦及應用於銀行、股票市場和太空實驗等要求極高穩性的重要系統。[1]而不少人會用 Linux 來指整個 GNU/Linux 系統。(本文主會講解 Linux 核心,有關以 Linux 作核心的作業系統,請參閱《GNU/Linux》) 。

目录

架構

Linux 由始至今都是使用單核心 (monolithic kernel) 結構,所有裝置驅動程式和核心附加元件 (kernel extension) 都在 kernelspace (ring 0) 運行並擁有存取硬件的所有權限。就 Linux 採用單核心結構,而不是如很多現代作業系統般採用微核心 (microkernel) 結構的問題,Linux 之父 Linus Torvalds 曾和 Minix 的作者 Andy Tanebaurn 教授在 1992 於 USENET 新聞組 comp.os.minix 有一場著名的爭論。當時 Andy Tanebaurn 教授認為微核心結構優於單核心結構,所以 Linux 技術是過時的。不過 Linux 和傳統單核心結構不同,裝置驅動程式和核心附加元件可以很輕易地編譯成為可載入核心模組 (Loadable Kernel Modules),在系統運行其間按需要載入或卸載。[2]

模組 (module)

附加的程式碼可以載入 Linux 核心以動態地擴充核心的功能。

  • 裝置驅動程式 - 例如網絡介面卡 (NIC)、USB 裝置和 Firewire 裝置等。
  • 檔案系統 - 例如 NTFS、ResierFS 和 XFS 等。
  • 其他 - 例如 NAT

Linux 版本、開發和維護

1.0 前

Linux 1.0 未發佈前 (1991 至 1994 年間),Linux 只屬電腦玩家的玩意,甚少應用在實制的伺服器上。Linux 的版本編號和開發亦非常簡單。Linux 第一個版本稱為 0.01,共次為 0.02、0.03、0.10、0.11、0.12 (第一個 GPL 版本) 、0.95、0.96、0.97、0.98、0.99 和最後在 1994 年 3 月 14 日發佈的 1.0。

1.0 至 2.5

1.0 後,Linux 作為一個自由/開放原始碼軟件,一方面為加強開發活力讓更多開發者可以參予開發工作引入更多新功能新技術和支援新硬件,另一方面要讓每個新功能新技術和新硬件驅動程式都有足夠測試周期來確保其穩定和安全性令使用者可以放心實際應用在任何嚴謹重要的系統,Linux 核心的開發在 1.0 至 2.5 (1994 年至 2004 年) 間都採用雙線並行的開發方式,而其版本編號以 A.B.C 格式出現。

A 為主要版本編號 (Major Number),只在程式碼和核心設計慨念上有重大改變才會被遞增,例如 1996 年的 2.0。而 B 為次要版本編號 (Minor Number),奇數 (1.1, 1.3、2.1、2.3 和 2.5) 表示為開發中版本,而偶數 (1.0, 1.2、2.0、2.2 和 2.4) 則表示為穩定版本。C 則為微少編號 (Micro Number) 當引入新功能或驅動程式時會被遞增。

  • Intermediate patches
    • m.n.x-prey - Pre-release (例如 2.4.21-pre7)
    • m.n.x-rcy - Release Candidate (例如 2.4.21-rc6)
    • m.n.x-abcdy - Patch by non-official maintainer (例如 2.4.20-ac2 為 Alan Cox 對 2.4.20 的第二個補丁)

幾乎所有時間 Linux 都會同時有兩個版本同時在開發,分別是次要版本編號 B 為奇數 (1.1, 1.3、2.1、2.3 和 2.5) 的穩定發佈 (stable release) 和次要版本編號 B 為偶數 (1.0, 1.2、2.0、2.2 和 2.4) 的開發版本/不穩定發佈 (development release/unstable release)。穩定版 Linux 較少改變,一般只要修補最新發現的安全漏洞才會有新發佈,適合用在實際運作環境下。而開發版本則開放給世界各地電腦專家參予 Linux 的開發工作,再由 Linus Torvalds 統籌管理維護,頻密地不繼發新版本。每個開發版本都收錄來自各電腦專家加入而 Linus 認為適用的新功能、新技術和新驅動程式,讓專業核心開發者測試和修正問題。開發版本當然絕不可以用在實際運作環境中。而每當 Linus 認為時機成熟,就會凍結為開發版本加入新功能,和各專業核心開發者專注測試和修正所有問題。所有主要問題修正後,Linus 就會遞增開發版本次要版本編號,躍升成熟的開發版本為最新的穩定版本,正如 1.1.95 升為 1.2.0、2.3.99-pre9 成為 2.4.0 和 2.5.75 成為 2.6.0 等。新穩定版本便有經長久測試而穩定的新功能、新技術和新驅動程式了。

當新穩定版發佈了多個版本後,Linus 又要以其中一個新穩定版 Linux 為基礎遞增版本次要版本編號來開拓新開發版本,例如 2.2.8 升為 2.3.0 和 2.4.15 升為 2.5.0 等。而穩定版就交由其他核心開發者如 Alan Cox 和 Marcelo Tosatti。

2.6

Linux 2.6.0 推出後,Linus 認為 Linux 作為作業系統核心所需的功能都已齊備,往後工作主要是加入對新硬件的支援,所以揚言不會有新開發版本發佈。所以長達七年多的時間,Linux 版本只遞增微小編號,而主要編號和次要編號 2.6 一直未有改變。一般每隔三個月左右發佈新版本。早期當修正安全漏洞或缺陷時亦會遞增微小編號,但 2.6.11 後的新政策只在修正版本編號 (Fixed Number) 反映有修正安全漏洞或缺陷。[2]

中後期因為個別 2.6 版本改變較大,開始有一些長期穩定版出現。Adrian Bunk 在 2005 年 12 月宣布他會繼續維護 2.6.16,所以 2.6.17 和其後版本推出後,2.6.16.y 仍有新修正版本推出,一直維持達兩年之久,成為 2.6 首個長期穩定發行 (Long-term stable release)。[3]而 2.6.16 的更新中除了修補安全漏洞亦有加入新驅動程式,讓使用者可以有類似以往 2.4 等的穩定版本核心,而毋須使用 2.6.17 及往後的新版本。2008 年 10 月,Adrian Bunk 結束了 2.6.16.y 的維護,改為以 Linux 2.6.27 為新長期穩定發行。[4]穩定團的 Greg Kroah-Hartman 決定接手長期維護 2.6.27 至今,而 2.6.32、2.6.33、2.6.34 和 2.6.35 都被標示為長期穩定發行,一直維護至今。

3

2011 年,Linus 認為 Linux 核心的版本編號太長,加上想慶祝 Linux 誕生二十週年並踏入第 3 個十年,決定在 2.6.39 後的新版本躍升為 3.0。而 Linux 3.0 就在 2011 年 7 月 22 正式登場。3.0 除了加入一些新功能和新驅動程式,結構上並沒有大改變。而往後,當引入新功能或驅動程式時會遞增次要版本編號如 3.1 和 3.2 等,修正安全漏洞或缺陷則遞增微小編號如 3.0.1 和 3.0.2 等。

Linux 其實從沒有 2.6.40 版本,但 Red Hat 開發時曾有 Linux 2.6.40 的核心出現。Linux 2.6.40 實際是 3.0,只是 Red Hat 為避免一些軟件因核心版本編號大改出現問題而所作的暫時編號篡改。

各版本簡要

主條目: Linux 核心發佈

版本 初次發佈日期 最近發佈 維護者 維護情況 特點
0.01 1991  ? Linus Torvalds 成為 1.0
1.0 1994-03-14  ? Linus Torvalds
1.1 1994-04-06 1.1.95
(1995-03-02)
Linus Torvalds 成為 1.2 開發版本
1.2 1995-03-07 1.2.13
(1995-08-02)
Linus Torvalds
1.3 1995-06-15 1.3.100
(1996-05-10)
Linus Torvalds 成為 1.3 開發版本
2.0 1996-07-03 2.0.40
(2004-02-08)
David Weinehall[5] 已停止維護
2.1 1996-09-30 2.1.132
(1998-12-22)
Linus Torvalds 成為 2.2 開發版本
2.2 1999-01-26 2.2.26
(2004-02-24)
Marc-Christian Petersen (前維護者 Alan Cox) 已停止維護
2.3 1999-05-11 2.3.99-pre9
(2000-05-23)
Linus Torvalds 成為 2.4 開發版本
2.4 2001-01-04 2.4.37.11
(2010-12-18)
Willy Tarreau (前維護者 Marcelo Tosatti) 如無發現大問題,將在 2011 年 9 月停止維護。
2.5 2001-11-23 2.5.75
(2003-07-10)
Linus Torvalds 成為 2.5 開發版本
2.6 2003-12-18 2.6.39
(2011-05-19)
Linus Torvalds
2.6.16 2006-03-20 2.6.16.62
(2008-07-12)
Adrian Bunk 已停止維護 2.6 首個長期穩定發行 (Long-term stable release),被 2.6.27.xx 取替後已停止維護
2.6.27 2008-10-09 2.6.27.59
(2011-04-30)
Willy Tarreau (前維護者 Greg Kroah-Hartman) 長期穩定發行
2.6.32 2009-12-03 2.6.32.45
(2011-08-16)
Greg Kroah-Hartman 長期穩定發行[6]
2.6.33 2010-02-24 2.6.33.18
(2011-08-16)
Greg Kroah-Hartman 長期穩定發行
2.6.34 2010-05-16 2.6.34.10
(2011-06-26)
Paul Gortmaker 長期穩定發行
2.6.35 2010-08-01 2.6.35.14
(2011-08-01)
Andi Kleen 長期穩定發行
3 2011-07-22 3.0.2
(2011-08-16)
Linus Torvalds 純為慶祝 Linux 踏入第三個十年改變版本編號為 3

關於 Linux 這名字

很多人都可以看出 Linux 這個名字是來自其原作者 Linus Torvalds 。不過據說 Linus 當初並不太想用這名字去稱呼其一手創位的作業系統。以免被人覺得他太過自大狂。最初,他改了個名字叫 Freix,但給 funet.fi 的系統管理員評為愚名,強把 Linus 上傳的作業系統核心放在名為 Linux 的目錄下。自此,Linux 也就成為這作業系統的名字。

很有趣, Linux 這個名字怎唸意成為 Linux 界的 FAQ 之一,也引起了不少罵戰。依美國慣常的拼法來說,Linux 應讀作 "L-eye-nix" ,不過 Linus 個則人則以瑞士語的讀法讀作 "Lee-nucks" 。 某程式這應以當時人的讀法作準,正如姓氏「單」應讀作「線」,不過始終很多人都直觀叫慣了 "L-eye-nix" ,誰是誰非也沒有定論。

Linux 變成商標

本身 Linus Torvalds 無意為限制任何人這用 Linux 這名字,不過在 1996-97 年間,Linux 曾發過一單商標風波。當時有一非 Linux 界的人以擁有 LINUX 註冊商標向一些 Linux 生產商徵收版權費,引起了一場法律訴訟。

事源 96 年初有些讀者去信 Linux Journal (LJ) 問為何 IDG Books 出版的 Linux Secret (Naba Barkakati 所著) 竟提到 Linux 是屬於一位叫 William R. Della Croce, Jr. 的人之註冊商標。究竟 Linux 這名字是否已被註冊了?LJ 立即就這件事問了 IDG Books , IDG Books 回答他們每次出版新書籍的時候,到個檢查書名有沒有字是已註冊了。而在出 Linux Secret 就發覺 Linux 這名早已給一個叫 William R. Della Croce, Jr. 註冊了。

LJ 在 96 年 7 月嘗試聯絡 Della Croce, Jr. 及並翻查商標註冊的記錄,証實 Della Croce, Jr. 在 8 Aug 1995 註冊 Linux 為商標而在 2 Aug 1994 初次使用。 Della Croce, Jr 註冊時對 Linux 的描述為 "Computer Operating System Software to facilitate computer use and Operation",正好和真正 Linux 相衝。隔了不久,Della Croce 正式以 他 擁有 Linux 的註冊為理由,要求收取以 Linux 為名的商品 10% 的版權費,引起了各 Linux 生產商的關注。[7]

本身 Linus Torvalds 早在 1991 年就用了 Linux 這個名字 , Linux 用戶在 1994/95 年間早已增長一可觀的數目,亦有大 量有關的書籍。基於以上理由,Linus Torvalds 、 WorkGroup Solutions 、 Yggdrasil Computing 、 LinuxInternational 、 SSC/LinuxJournal 等聯合要求 Trademark Trial and Appeals Board 取消 Della Croce, Jr. 對 Linux 的註冊。[8] 這場訴訟持續了近一年時間, RedHat 、 Metro Link 及 Digital Equipment Corporation 亦有支持這 次訴訟,並有支付這次訴訟的費用。到了 1997 年 8 月 20 日,Della Croce, Jr. 終於協議把 LINUX 商標擁有權轉回給 Linux 的原作者 Linus Torvalds , 整年事亦告一段落。[9]

參考資料

  1. Wikipedia. Linux.
  2. 2.0 2.1 Wikipedia. Linux kernel.
  3. Jeremy Offline (2001-10-13). Linux: Maintaining A 2.6.16.y Tree. KernelTrap.
  4. Adrian Bunk ( 2008-10-11). Linux 2.6.27 will be a longtime supported kernel. LKML.
  5. David Weinehall (2004-02-08). [ANNOUNCE] Linux-kernel 2.0.40 aka “The Moss-covered Tortoise”. Linux Kernel Mailing List.
  6. Kroah-Hartman, Greg (2010-01-18) Stable kernel tree status, January 18, 2010. Linux Kernel Mailing List.
  7. Linux.org The History of Linux. Linux Online, Inc.
  8. Hughes, Phil (1997). Action Taken on Linux Trademark. Linux Journal. 1997(3).
  9. Richardson, Marjorie (1997). Ownership of Linux Trademark Resolved. Linux Journal. 1997(11).

請參看

相關連結

Personal tools