我們在網上已經習慣用“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等一眾大神現身說法,推薦給程序員和極客們。
?
?
?
原文鏈接: Chris Hoffman 翻譯: 極客范 - 愛開源的貢獻開源社區
譯文鏈接: http://www.geekfan.net/4221/
[ 轉載請保留原文出處、譯者和譯文鏈接。]