世紀大爭論:Linux還是GNU/Linux?

geekfan發表於2013-12-12

  我們在網上已經習慣用“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-love

 不同的聲音: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網站上找到

richard-stallman

 不同的聲音: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等一眾大神現身說法,推薦給程式設計師和極客們。

<embed>

相關文章