Linux和GNU系統的關係詳解

2022-09-20 11:21:09 字數 2688 閱讀 9533

目錄

今天廣泛使用的 gnu 版本通常被稱為「linux」,而它的許多使用者並不知道 它基本上是由gnu 專案開發的 gnu 系統 。

確實有乙個 linux,這些人正在使用它,但它只是他們使用的系統的一部分。linux 是核心:系統中的程式,它將機器的資源分配給您執行的其他程式。核心是作業系統的重要組成部分,但它本身毫無用處;它只能在完整作業系統的上下文中執行。linux 通常與 gnu 作業系統結合使用:整個系統基本上是 gnu 加上 linux,或 gnu/linux。所有所謂的「linux」發行版實際上都是 gnu/linux 的發行版。

許多使用者不了解核心(linux)與整個系統(他們也稱為「linux」)之間的區別。名稱的模糊使用無助於人們理解。這些使用者往往認為,linus torvalds 在 1991 年開發了整個作業系統,有一點幫助。

程式設計師一般都知道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 發行版&rdqktzmcduuo;中,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 一起使用。將乙個完整的www.cppcns.com系統整合為乙個「開箱即用」的發行版也是一項艱鉅的工作。它需要解決如何安裝和引導系統的問題——我們還沒有解決這個問題,因為我們還沒有達到那個點。因此,開發各種系統發行版的人做了很多必不可少的工作。但是,就事物的性質而言,這是肯定會由某人完成的工作。

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 是核心,是系統必不可少ktzmcdu的主要元件之一。整個系統基本上是gnu系統,加入了linux。當您談論這種組合時,請稱其為「gnu/linux」。

linux和GNU之間的關係

linux只是乙個作業系統核心而已,而gnu提供了大量的自由軟體來豐富在其之上各種應用程式 因此,嚴格來講,linux這個詞本身只表示linux核心,但在實際上人們已經習慣了用linux來形容整個基於linux核心,並且使用gnu 工程各種工具和資料庫的作業系統。基於這些元件的linux軟體被稱為l...

GNU和GPL的區別 關係

gun gnu s not unix的縮寫,是一項運動。是1983年richard stallman針對unix走向畢源和和收費後發起的運動,旨在打造出一套完全開源免費的作業系統。為了更好地實施gnu運動,richard stallman在1985創立了自由軟體 會 free software fo...

GNU 是什麼,和 Linux 是什麼關係?

unix 系統被發明之後,大家用的很爽。但是後來開始收費和商業閉源了。乙個叫 rms 的大叔覺得很不爽,於是發起 gnu 計畫,模仿 unix 的介面和使用方式,從頭做乙個開源的版本。然後他自己做了編輯器 emacs 和編譯器 gcc。gnu 是乙個計畫或者叫運動。在這個旗幟下成立了 fsf,起草了...