世紀大爭論:Linux還是GNU/Linux?
我們在網上已經習慣用“Linux”來稱呼Linux作業系統了,然而,偶爾也用“GNU/Linux”來稱呼和指代同樣的作業系統和軟體。同時人們也在爭論這兩種稱呼哪個更合適。
本文將不會選邊站隊,僅力圖向你講述這兩種稱呼的來歷,並解釋”Linux”與“GNU/Linux”之間的微妙差異。
什麼是“Linux”?
“Linux”這個詞僅僅代表核心——作業系統的核心。其他軟體,比如用來編譯核心的GNU C編譯器,bash命令列終端,GNU Shell元件(包括所有你用到的基本命令),X.org圖形伺服器, 一個圖形化的桌面環境比如Unity(譯者注:基於GNOME 3開發),以及在桌面環境上執行的各種軟體,比如Firefox,這些都是由不同開發者來開發的。
Linux發行版則集合來所有這些由不同開發者開發的元件,我們習慣將這個有機整合的軟體包稱為“Linux”.有關更多Linux發行版的知識以及發行版之間的差別,可以閱讀HTG 解碼:什麼是Linux發行版?它們之間有何差別?
GNU計劃
1983年Richard Stallman(理查德·斯托曼)創立GNU計劃。GNU的目標是建立一套完全由自由軟體的相容UNIX的作業系統。“GNU”是英文“GNU‘s Not Unix!”的遞迴縮寫。(“自由軟體”是對一類開源軟體的稱呼,而自由軟體更強調自 由,不過,本文不打算討論自由軟體和開源軟體的差異)
1991年的時候,GNU計劃已經完成了GNU作業系統的絕大部分元件,包括GNU C編譯器(gcc),bash命令列終端和其他Shell命令列元件,以及Emacs文字編輯器等等。其他元件則有已經存在的自由軟體來替代,比如X Windows系統來提供圖形化桌面的介面。
然而,作業系統的核心——GNU Hurd核心——依舊沒有完成。GNU計劃非常冒險的選擇了“微核心”設計架構(微核心是指將系統服務的實現,與系統的基本操作規則區分開來。它實現的方式,是將核心功能模組化,劃分成幾個獨立的程式,獨立執行。可以減少系統之間的耦合度,易於實現與除錯,也可增進可移植性。它可以避免單一元件失效,而造成整個系統崩潰。Windows NT以及Mac OS均是微核心架構。——譯者注,摘自維基百科“微核心”詞條),也正因為選用了微核心架構造成開發週期異常漫長。(到2013年,GNU Hurd核心已經開發了23年依然沒有釋出穩定版)。
千呼萬喚Linux來!
對GNU作業系統來說,缺失的最後一環就是核心(kernel),同時這也是最重要的一環,可謂是“萬事俱備只欠東風”。時間到了1991年,芬蘭赫爾辛基大學的學生Linus Torvalds(林納斯·託瓦茲)釋出了Linux核心的第一個版本。將Linux核心、GNU軟體以及X視窗管理系統整合在一起,就可以成為了一個完整的且自由分發的作業系統了(就如同現在的“Linux發行版”)。
剛開始就已經有這種作業系統應該如何稱呼的爭論。1992年,Yggdrasil計劃用““Yggdrasil Linux/GNU/X”來命名其整合起來的軟體。而Richard Stallman和自由軟體基金會更加推崇使用“GNU/Linux”。Debian目前一直將其軟體稱為“GNU/Linux”。(Debian以其堅守Unix和自由軟體的精神,以及其給予使用者的眾多選擇而聞名。現時Debian包括了超過37500個軟體包並支援12個計算機系統結構。——譯者注,摘自維基百科“Debian”詞條)。
不同的聲音:GNU/Linux
GNU計劃要開發一個叫“GNU”的完全自由的作業系統,而Linux的絕大部分軟體也是GNU計劃提供的。然而這就出現了一個顯而易見的問題,也正如Richard Stallman反對的,稱之為“Linux”會泯滅GNU的意義以及其初始目標——一個完全自由的作業系統併為使用者提供自由。而這也就與另一組爭論交織在一起了——“自由軟體”和“開源軟體”,“自由軟體”這個稱呼更加強調自由權力,而“開源軟體”則關注於技術優勢而淡化意識形態紛爭。
正如2005年Richard Stallman在接受ZNET採訪時所說:”設計Linux的目的並不是為了解放網路世界,而且Linux的開發動機也並不會帶給我們今天所看到的整個GNU/Linux系統。今天有數十萬使用者使用這樣的作業系統,他們因此而獲得了自由——但他們卻並沒有意識到這一點,因為他們覺得這個系統就是Linux,而且是一個學生因為“只是覺得好玩”而開發出來的。”
(1991年Linus Torvalds釋出Linux核心第一版的時候是芬蘭赫爾辛基大學研二的學生,第一次釋出到新聞組的時候稱其寫Linux只是“Just For Fun”,後來他在2002年出版了一本自傳,也取名為《Just For Fun》——譯者注)
更多有關此的思考可以在GNU網站上找到。
不同的聲音:Linux
而支援使用“Linux”這個稱呼的人認為,僅僅關注GNU是個錯誤,那麼基於同樣的理由,眾多發行版包含不同組織的軟體那麼就應該稱為“Mozilla/KDE/Apache/X.org/GNU/Linux”。(這是典型的詭辯——譯者評價)
大多數人仍舊使用“Linux”這個稱呼。除非有更好的,因它簡單易記,朗朗上口。且無論這理想的名字是什麼,“Linux”都會是大多人對這作業系統的簡稱。你可以在這裡看到“Linux”也能在別處看到,因為這對讀者來說是能夠第一時間就明白的稱呼。
好了,我們以Linus Torvalds於1996年在新聞組裡的話做結尾:“嗯,關於這個的討論已經夠多的了,非常感謝!對於公眾來說,如何稱呼Linux這根本就不算個事,只要可以自圓其說就夠了(對雙方而言)。從我個人的角度,我會非常樂意繼續稱之為Linux”。
如果想了解更多關於Linux的起源與發展,這裡推薦給大家一個視訊:Code Linux。視訊中有包括Linus Torvalds、Richard Stallman、Alan Cox、Eric S. Raymond等一眾大神現身說法,推薦給程式設計師和極客們。
相關文章
- Linux 2.4 - 世紀末的聖誕禮物 (轉)Linux
- GNU與LinuxLinux
- 在 21 世紀該怎樣編譯 Linux 核心編譯Linux
- GNU是什麼?和Linux是什麼關係?Linux
- GNU 和 Linux(轉)Linux
- 遊戲論 | 21世紀“顛覆性遊戲”反思遊戲
- 21世紀獲取六西格瑪培訓證書是職場競爭的趨勢
- GNU是什麼?與Linux的不同之處在哪?Linux
- Linux 將成為 21 世紀汽車的主要作業系統Linux作業系統
- Unix、Linux、GNU 關係梳理Linux
- GNU與Linux 的關係Linux
- 劉擎《紛爭的年代:二十世紀西方思想文化潮流》筆記筆記
- 檢視Linux是ubuntu還是centosLinuxUbuntuCentOS
- IT工作者是21世紀的礦工嗎?
- 非真,亦非假——20世紀數學悖論入侵機器學習機器學習
- 李世石谷歌AlphaGo人機圍棋世紀大戰:誰會贏?谷歌Go
- 在Linux中,GNU專案的重要性是什麼?Linux
- 如何在 Linux 上使用 GNU sedLinux
- 細數二十世紀最偉大的10大演算法演算法
- IT工作者是21世紀的礦工嗎?(下篇)
- 中醫基礎理論新世紀第四版pdf
- 網際網路公司=21世紀的國營大廠
- 世紀聯華的 Serverless 之路Server
- 我對李世石 AlphaGo 人機世紀圍棋大戰的幾點看法Go
- 爭論不休的一個話題:金額到底是用Long還是BigDecimal?Decimal
- GNU/Linux安全基線與加固-0.1Linux
- KNOPPIX 7.4.1 釋出,GNU/Linux 系統Linux
- 我為什麼討厭GNU/Linux?Linux
- 二十世紀最偉大的十大經典演算法演算法
- 關於RDP協議的分析(一) - Linux論壇 - 計世網論壇 - Powered by Discuz!協議Linux
- 蘋果為何是Linux的最大競爭對手?蘋果Linux
- 如何檢視Linux是32位還是64位Linux
- Debian GNU/Linux拋棄Firefox?(轉)LinuxFirefox
- 17世紀的社交網路
- GNU Guix 將終止對 Linux 核心的支援,全面替換為 GNU HurdGUILinux
- GNU/Linux實戰手記之Emacs篇 下——Emacs是個IDE (轉)LinuxMacIDE
- 【java web】--html、xml競爭還是合作?JavaWebHTMLXML
- 檢視linux機器是32位還是64位Linux