Linux和GNU系統(tǒng)的關(guān)系詳解
目錄
- 每天都在運(yùn)行的Linux系統(tǒng)其實(shí)是?
- Linux內(nèi)核 和 GNU 系統(tǒng)簡(jiǎn)介
- Linux內(nèi)核 和 GNU 系統(tǒng)之間的關(guān)系詳解
- 總結(jié)
每天都在運(yùn)行的Linux系統(tǒng)其實(shí)是?
今天廣泛使用的 GNU 版本通常被稱為“Linux”,而它的許多用戶并不知道 它基本上是由GNU 項(xiàng)目開發(fā)的 GNU 系統(tǒng) 。
Linux內(nèi)核 和 GNU 系統(tǒng)簡(jiǎn)介
確實(shí)有一個(gè) Linux,這些人正在使用它,但它只是他們使用的系統(tǒng)的一部分。Linux 是內(nèi)核:系統(tǒng)中的程序,它將機(jī)器的資源分配給您運(yùn)行的其他程序。內(nèi)核是操作系統(tǒng)的重要組成部分,但它本身毫無用處;它只能在完整操作系統(tǒng)的上下文中運(yùn)行。Linux 通常與 GNU 操作系統(tǒng)結(jié)合使用:整個(gè)系統(tǒng)基本上是 GNU 加上 Linux,或 GNU/Linux。所有所謂的“Linux”發(fā)行版實(shí)際上都是 GNU/Linux 的發(fā)行版。
許多用戶不了解內(nèi)核(Linux)與整個(gè)系統(tǒng)(他們也稱為“Linux”)之間的區(qū)別。名稱的模糊使用無助于人們理解。這些用戶往往認(rèn)為,Linus Torvalds 在 1991 年開發(fā)了整個(gè)操作系統(tǒng),有一點(diǎn)幫助。
Linux內(nèi)核 和 GNU 系統(tǒng)之間的關(guān)系詳解
程序員一般都知道Linux是一個(gè)內(nèi)核。但是,由于他們通常也聽說過整個(gè)系統(tǒng)也被稱為“Linux”,因此他們經(jīng)常設(shè)想一段歷史,可以證明以內(nèi)核命名整個(gè)系統(tǒng)是合理的。例如,許多人認(rèn)為,一旦 Linus Torvalds 完成 Linux 內(nèi)核的編寫,其用戶就會(huì)四處尋找其他免費(fèi)軟件,并發(fā)現(xiàn)(無特殊原因)制作類 Unix 系統(tǒng)所需的大多數(shù)東西都已經(jīng)可用的。
他們的發(fā)現(xiàn)并非偶然——它是不完全完整的 GNU 系統(tǒng)。可用的自由軟件加起來就是一個(gè)完整的系統(tǒng),因?yàn)?GNU 項(xiàng)目自 1984 年以來就一直在努力制作一個(gè)。在GNU 宣言中,我們提出了開發(fā)一個(gè)自由的類 Unix 系統(tǒng)的目標(biāo),稱為 GNU。GNU 項(xiàng)目的 初始公告還概述了 GNU 系統(tǒng)的一些原始計(jì)劃。到 Linux 啟動(dòng)時(shí),GNU 幾乎完成了。
大多數(shù)自由軟件項(xiàng)目的目標(biāo)是為特定工作開發(fā)特定程序。例如,Linus Torvalds 著手編寫類 Unix 內(nèi)核 (Linux);Donald Knuth 著手編寫文本格式化程序 (TeX);Bob Scheifler 著手開發(fā)一個(gè)窗口系統(tǒng)(X Window System)。用來自項(xiàng)目的特定程序來衡量這種項(xiàng)目的貢獻(xiàn)是很自然的。
如果我們?cè)噲D以這種方式衡量 GNU 項(xiàng)目的貢獻(xiàn),我們會(huì)得出什么結(jié)論?一家 CD-ROM 供應(yīng)商發(fā)現(xiàn),在他們的“Linux 發(fā)行版”中,GNU 軟件是最大的單一隊(duì)伍,約占總源代碼的 28%,其中包括一些必不可少的主要組件,沒有這些組件就沒有系統(tǒng)。Linux 本身約占 3%。(2008 年的比例相似:在 gNewSense 的“主”存儲(chǔ)庫(kù)中,Linux 為 1.5%,GNU 軟件包為 15%。)因此,如果您要根據(jù)誰在系統(tǒng)中編寫程序來為系統(tǒng)選擇一個(gè)名稱,最合適的單一選擇是“GNU”。
但這并不是考慮這個(gè)問題的最深層次的方法。GNU 項(xiàng)目不是,也不是開發(fā)特定軟件包的項(xiàng)目。這不是一個(gè)開發(fā) C 編譯器的項(xiàng)目,盡管我們這樣做了。雖然我們開發(fā)了一個(gè)文本編輯器,但它不是一個(gè)開發(fā)文本編輯器的項(xiàng)目。GNU 計(jì)劃著手開發(fā)一個(gè)完整的自由類 Unix 系統(tǒng):GNU。
許多人為系統(tǒng)中的自由軟件做出了重大貢獻(xiàn),他們的軟件都值得稱贊。但它之所以是一個(gè)集成系統(tǒng)——而不僅僅是一組有用程序的集合——是因?yàn)?GNU 項(xiàng)目著手將它變成一個(gè)系統(tǒng)。我們列出了制作完整免費(fèi)系統(tǒng)所需的程序清單,我們系統(tǒng)地查找、編寫或找人編寫清單上的所有內(nèi)容。我們編寫了必不可少但乏味的?[1]組件,因?yàn)闆]有它們您就無法擁有一個(gè)系統(tǒng)。我們的一些系統(tǒng)組件,即編程工具,自己在程序員中流行起來,但我們編寫了許多不是工具的組件?[2]. 我們甚至開發(fā)了一個(gè)國(guó)際象棋游戲 GNU Chess,因?yàn)橐粋€(gè)完整的系統(tǒng)也需要游戲。
到 90 年代初,除了內(nèi)核之外,我們已經(jīng)將整個(gè)系統(tǒng)組裝在一起。我們還啟動(dòng)了一個(gè)內(nèi)核,即 GNU Hurd,它運(yùn)行在 Mach 之上。開發(fā)這個(gè)內(nèi)核比我們預(yù)期的要困難得多; GNU Hurd 于 2001 年開始可靠地工作,但距離讓人們普遍使用還有很長(zhǎng)的路要走。
幸運(yùn)的是,由于 Linux,我們不必等待 Hurd。Torvalds 在 1992 年解放了 Linux,它填補(bǔ)了 GNU 系統(tǒng)的最后一個(gè)主要缺口。然后人們可以 將 Linux 與 GNU 系統(tǒng)結(jié)合起來,形成一個(gè)完整的自由系統(tǒng)——一個(gè)也包含 Linux 的 GNU 系統(tǒng)版本。換句話說,GNU/Linux 系統(tǒng)。
讓他們很好地協(xié)同工作并非易事。一些 GNU 組件?[3]需要大量更改才能與 Linux 一起使用。將一個(gè)完整的系統(tǒng)集成為一個(gè)“開箱即用”的發(fā)行版也是一項(xiàng)艱巨的工作。它需要解決如何安裝和引導(dǎo)系統(tǒng)的問題——我們還沒有解決這個(gè)問題,因?yàn)槲覀冞€沒有達(dá)到那個(gè)點(diǎn)。因此,開發(fā)各種系統(tǒng)發(fā)行版的人做了很多必不可少的工作。但是,就事物的性質(zhì)而言,這是肯定會(huì)由某人完成的工作。
GNU工程支持GNU / Linux系統(tǒng),以及在GNU系統(tǒng)。該FSF資金的Linux相關(guān)的擴(kuò)展,GNU C庫(kù)的改寫,所以,現(xiàn)在他們已完全融入,以及最新的GNU / Linux系統(tǒng)中使用當(dāng)前版本的庫(kù)沒有變化。FSF 還資助了 Debian GNU/Linux 的早期開發(fā)階段。
今天有許多不同的 GNU/Linux 系統(tǒng)變體(通常稱為“發(fā)行版”)。它們中的大多數(shù)都包含非自由程序——它們的開發(fā)人員遵循與 Linux 相關(guān)的“開源”哲學(xué),而不是GNU的 “自由軟件”哲學(xué)。但也有 完全免費(fèi)的 GNU/Linux 發(fā)行版。FSF 支持其中一些的計(jì)算機(jī)設(shè)施。
制作免費(fèi)的 GNU/Linux 發(fā)行版不僅僅是消除各種非自由程序的問題。現(xiàn)在,通常的 Linux 版本也包含非自由程序。這些程序旨在在系統(tǒng)啟動(dòng)時(shí)加載到 I/O 設(shè)備中,它們以一長(zhǎng)串?dāng)?shù)字的形式包含在 Linux 的“源代碼”中。因此,維護(hù)免費(fèi)的 GNU/Linux 發(fā)行版現(xiàn)在也需要維護(hù)Linux的免費(fèi)版本。
無論您是否使用 GNU/Linux,請(qǐng)不要混淆使用“Linux”這個(gè)名稱來混淆公眾。Linux 是內(nèi)核,是系統(tǒng)必不可少的主要組件之一。整個(gè)系統(tǒng)基本上是GNU系統(tǒng),加入了Linux。當(dāng)您談?wù)撨@種組合時(shí),請(qǐng)稱其為“GNU/Linux”。
總結(jié)
到此這篇關(guān)于Linux和GNU系統(tǒng)的關(guān)系詳解的文章就介紹到這了,更多相關(guān)Linux和GNU系統(tǒng)內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
