GNU 在 GNU/Linux 作業系統中的主要貢獻是什麼?

GNU 在 GNU/Linux 作業系統中的主要貢獻是什麼?

我讀到GNU/Linux 常見問題解答,他們要求每個人將整個系統稱為 GNU/Linux 的原因之一是:

  • GNU 在開發作業系統方面的主要貢獻。

這讓我想知道,GNU 在 GNU/Linux 作業系統的開發中做出了哪些主要貢獻?

換句話說,GNU/Linux 作業系統中哪些是 GNU 的主要/主要元件?

答案1

最重要的部分是 GCC 編譯器、glibc C 函式庫、coreutils 和 binutils 基本 Unix 工具,可能還有 bash shell 和 Gnome 桌面環境(如果您使用這些)。

僅原始程式碼行數並未考慮相對重要性。如果您選擇 Debian 或 Fedora 的完整軟體,大多數人甚至不會安裝其中的一小部分。而且(除非你組織得非常有條理),他們很可能安裝了很多軟體包,因為他們很感興趣,安裝它來檢查一下,然後就忘記了。因此,甚至連下載的軟體包的統計數據(就像我相信 Debian 維護的那樣)都不是一個公平的描述。

稍後添加:我剛剛遇到這一頁作者:O'Reilly(附帶一張海報,顯示對 Linux 系統的貢獻)。

答案2

除了vonbrand 的回答之外,我們不要忘記對GNU/Linux 作業系統的一個重大貢獻是,當Linux(核心)問世時,許多GNU 東西已經存在,已經作為整個生態系統發揮作用,並且可以在開源許可下免費使用。

人們也不應該忘記最初的 GNU 專案目標是什麼,即建立一個免費的 Unix 克隆。 Unix 過去是,現在更是一組規範,包含作業系統需要遵守的所有 API、指令和功能。該標準對於開發人員建立便攜式應用程式非常有幫助。

GNU libc 和 GNU coreutils/binutils 正是為大多數基於 Linux 核心的作業系統提供了這些 API 和命令。它們構成了基礎,在此之上可以建構其他一切。

無論它們的用途和複雜性如何,其餘組件都是可選的,並且沒有由 Unix 標準指定,因此從技術上講它們不是 Unix 作業系統及其克隆的一部分。

這就是我認為將 Linux 發行版稱為 Linux/GNU/TeX/X11/Python/ISC/Apache/ 等沒有多大意義的原因,因為只有 Gnu 和 Linux 構成了核心,提供了所有 Unix 所期望的共同基礎/ Linux 生態系。

TEX/X11/Gnome/KDE/Perl/Python/ISC/Apache/Tomcat/LibreOffice/Mozilla/Chromium/無論它們多麼有用,都不屬於 Unix/Linux。

答案3

我建議閱讀這篇文章Linux 和 GNU 系統&GNU 計劃獲得 GNU 貢獻的想法。


以下是部分引自Linux 和 GNU 系統:

  • 貢獻概述:

    如果我們嘗試以這種方式衡量 GNU 專案的貢獻,我們會得出什麼結論?一位 CD-ROM 供應商發現,在他們的“Linux 發行版”中,GNU軟體是最大的單一隊伍,約佔總原始碼的 28%,其中包括一些必要的主要組件,沒有這些組件就不可能有系統。 Linux 本身大約是 3%。 (2008 年的比例類似:在 gNewSense 的「主」儲存庫中,Linux 為 1.5%,GNU 軟體包為 15%。)因此,如果您要根據系統中程式的編寫者來為系統選擇名稱,最合適的單一選擇是“GNU”。

  • 關於目標的澄清:

    但這並不是思考這個問題的最深入的方式。 GNU 專案過去不是、現在也不是開發特定軟體包的專案。這不是一個項目開發一個C編譯器,儘管我們這樣做了。儘管我們開發了一個文字編輯器,但這並不是一個開發文字編輯器的專案。 GNU 計畫著手開發一個完整的免費類 Unix 系統:GNU。

  • 基本成分聲明:

    許多人為系統中的自由軟體做出了重大貢獻,他們的軟體都值得讚揚。但它之所以是一個整合系統,而不僅僅是有用程式的集合,是因為 GNU 專案致力於將其打造成一個整合系統。我們列出了製作一個完整的免費系統所需的程式清單,並且我們有系統地找到、編寫或找到人編寫清單上的所有內容。我們寫了重要但乏味的內容(1)組件,因為沒有它們就不可能有系統。我們的一些系統元件,即程式設計工具,在程式設計師中自行流行,但我們編寫的許多元件不是工具(2)我們甚至開發了一款國際象棋遊戲,GNU Chess,因為一個完整的系統也需要遊戲。


來自維基百科的文章GNU>元件:

此系統的基本組件包括GNU 編譯器集合(海灣合作委員會)GNU C 函式庫(glibc),以及GNU 核心實用程式(核心實用程式),[8]還有 GNU 調試器 (GDB),GNU 二進位實用程式(binutils),[38]GNU Bash shell[33][39]侏儒桌面環境。[40]

也訪問GNU 軟體包清單>基礎系統來自維基百科。


因此,主要組件可以列出為:

  1. GNU Binutils
  2. GNU Coreutils
  3. GNU C 函式庫
  4. GNU 編譯器集合(原名:GNU C 編譯器)
  5. GNU 焦油
  6. GNU 重擊
  7. 侏儒

以及更多。


此外,從常問問題:

Linus Torvalds 在某種程度上受到了 1990 年在芬蘭關於 GNU 的演講的影響。 Linux 於 1992 年成為免費的,當時 Linus 在 GNU GPL 下重新發布了它。


另請注意,他們不想要求我們僅僅因為他們對系統的最大貢獻而稱呼 GNU/Linux,但更重要的是引入、保留和鼓勵 GNU 的理想主義和目標,對此進行了解釋為什麼選擇 GNU/Linux?

相關內容