Linux和GNU系統的關系詳解
目錄
- 每天都在運行的Linux系統其實是?
- Linux內核 和 GNU 系統簡介
- Linux內核 和 GNU 系統之間的關系詳解
- 總結
每天都在運行的Linux系統其實是?
今天廣泛使用的 GNU 版本通常被稱為“Linux”,而它的許多用戶并不知道 它基本上是由GNU 項目開發的 GNU 系統 。
Linux內核 和 GNU 系統簡介
確實有一個 Linux,這些人正在使用它,但它只是他們使用的系統的一部分。Linux 是內核:系統中的程序,它將機器的資源分配給您運行的其他程序。內核是操作系統的重要組成部分,但它本身毫無用處;它只能在完整操作系統的上下文中運行。Linux 通常與 GNU 操作系統結合使用:整個系統基本上是 GNU 加上 Linux,或 GNU/Linux。所有所謂的“Linux”發行版實際上都是 GNU/Linux 的發行版。
許多用戶不了解內核(Linux)與整個系統(他們也稱為“Linux”)之間的區別。名稱的模糊使用無助于人們理解。這些用戶往往認為,Linus Torvalds 在 1991 年開發了整個操作系統,有一點幫助。
Linux內核 和 GNU 系統之間的關系詳解
程序員一般都知道Linux是一個內核。但是,由于他們通常也聽說過整個系統也被稱為“Linux”,因此他們經常設想一段歷史,可以證明以內核命名整個系統是合理的。例如,許多人認為,一旦 Linus Torvalds 完成 Linux 內核的編寫,其用戶就會四處尋找其他免費軟件,并發現(無特殊原因)制作類 Unix 系統所需的大多數東西都已經可用的。
他們的發現并非偶然——它是不完全完整的 GNU 系統。可用的自由軟件加起來就是一個完整的系統,因為 GNU 項目自 1984 年以來就一直在努力制作一個。在GNU 宣言中,我們提出了開發一個自由的類 Unix 系統的目標,稱為 GNU。GNU 項目的 初始公告還概述了 GNU 系統的一些原始計劃。到 Linux 啟動時,GNU 幾乎完成了。
大多數自由軟件項目的目標是為特定工作開發特定程序。例如,Linus Torvalds 著手編寫類 Unix 內核 (Linux);Donald Knuth 著手編寫文本格式化程序 (TeX);Bob Scheifler 著手開發一個窗口系統(X Window System)。用來自項目的特定程序來衡量這種項目的貢獻是很自然的。
如果我們試圖以這種方式衡量 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,因為一個完整的系統也需要游戲。
到 90 年代初,除了內核之外,我們已經將整個系統組裝在一起。我們還啟動了一個內核,即 GNU Hurd,它運行在 Mach 之上。開發這個內核比我們預期的要困難得多; GNU Hurd 于 2001 年開始可靠地工作,但距離讓人們普遍使用還有很長的路要走。
幸運的是,由于 Linux,我們不必等待 Hurd。Torvalds 在 1992 年解放了 Linux,它填補了 GNU 系統的最后一個主要缺口。然后人們可以 將 Linux 與 GNU 系統結合起來,形成一個完整的自由系統——一個也包含 Linux 的 GNU 系統版本。換句話說,GNU/Linux 系統。
讓他們很好地協同工作并非易事。一些 GNU 組件?[3]需要大量更改才能與 Linux 一起使用。將一個完整的系統集成為一個“開箱即用”的發行版也是一項艱巨的工作。它需要解決如何安裝和引導系統的問題——我們還沒有解決這個問題,因為我們還沒有達到那個點。因此,開發各種系統發行版的人做了很多必不可少的工作。但是,就事物的性質而言,這是肯定會由某人完成的工作。
GNU工程支持GNU / Linux系統,以及在GNU系統。該FSF資金的Linux相關的擴展,GNU C庫的改寫,所以,現在他們已完全融入,以及最新的GNU / Linux系統中使用當前版本的庫沒有變化。FSF 還資助了 Debian GNU/Linux 的早期開發階段。
今天有許多不同的 GNU/Linux 系統變體(通常稱為“發行版”)。它們中的大多數都包含非自由程序——它們的開發人員遵循與 Linux 相關的“開源”哲學,而不是GNU的 “自由軟件”哲學。但也有 完全免費的 GNU/Linux 發行版。FSF 支持其中一些的計算機設施。
制作免費的 GNU/Linux 發行版不僅僅是消除各種非自由程序的問題。現在,通常的 Linux 版本也包含非自由程序。這些程序旨在在系統啟動時加載到 I/O 設備中,它們以一長串數字的形式包含在 Linux 的“源代碼”中。因此,維護免費的 GNU/Linux 發行版現在也需要維護Linux的免費版本。
無論您是否使用 GNU/Linux,請不要混淆使用“Linux”這個名稱來混淆公眾。Linux 是內核,是系統必不可少的主要組件之一。整個系統基本上是GNU系統,加入了Linux。當您談論這種組合時,請稱其為“GNU/Linux”。
總結
到此這篇關于Linux和GNU系統的關系詳解的文章就介紹到這了,更多相關Linux和GNU系統內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: