複製鏈接
請複製以下鏈接發送給好友

GNU

鎖定
GNU是一個操作系統,其內容軟件完全以GPL方式發佈。這個操作系統是GNU計劃的主要目標,名稱來自GNU's Not Unix!的遞歸縮寫,因為GNU的設計類似Unix,但它不包含具著作權的Unix代碼。GNU的創始人,理查德·馬修·斯托曼,將GNU視為“達成社會目的技術方法”。
作為操作系統,GNU的發展仍未完成,其中最大的問題是具有完備功能的內核尚未被開發成功。GNU的內核,稱為Hurd,是自由軟件基金會發展的重點,但是其發展尚未成熟。在實際使用上,多半使用Linux內核FreeBSD等替代方案,作為系統核心,其中主要的操作系統是Linux的發行版。Linux操作系統包涵了Linux內核與其他自由軟件項目中的GNU組件和軟件,可以被稱為GNU/Linux(見GNU/Linux命名爭議)。
中文名
革奴計劃
外文名
GNU
發起時間
1983年9月27日
發起人
Richard Stallman
代表項目
EmacsGCCnano

GNU解釋

Stallman Stallman
“GNU”是“GNU's Not Unix!”(GNU並非Unix!)的首字母遞歸縮寫。 [1]  Stallman宣佈GNU應當發音為Guh-NOO以避免與new這個單詞混淆(注:gnu在英文中原意為非洲牛羚,發音與new相同)。
UNIX是一種廣泛使用的商業操作系統的名稱。由於GNU將要實現UNIX系統的接口標準,因此GNU計劃可以分別開發不同的操作系統部件。GNU計劃採用了部分當時已經可自由使用的軟件,例如TeX排版系統和X Window視窗系統等。不過GNU計劃也開發了大批其他的自由軟件。

GNU歷史

1985年Richard Stallman又創立了自由軟件基金會(Free Software Foundation)來為GNU計劃提供技術、法律以及財政支持。儘管GNU計劃大部分時候是由個人自願無償貢獻,但FSF有時還是會聘請程序員幫助編寫。當GNU計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之後被Red Hat兼併的 Cygnus Solutions。
GNU操作系統的內核Linux GNU操作系統的內核Linux
到了1990年,GNU計劃已經開發出的軟件包括了一個功能強大的文字編輯器EmacsGCC(GNU Compiler Collection,GNU編譯器集合),是一套由 GNU 開發的編程語言編譯器。以及大部分UNIX系統的程序庫和工具。唯一依然沒有完成的重要組件就是操作系統的內核(稱為HURD)。
1991年Linus Torvalds編寫出了與UNIX兼容的Linux操作系統內核並在GPL條款下發布。Linux之後在網上廣泛流傳,許多程序員參與了開發與修改。1992年Linux與其他GNU軟件結合,完全自由的操作系統正式誕生。該操作系統往往被稱為“GNU/Linux”或簡稱Linux。(儘管如此GNU計劃自己的內核Hurd依然在開發中,已經發布Beta版本。)
許多UNIX系統上也安裝了GNU軟件,因為GNU軟件的質量比之前UNIX的軟件還要好。GNU工具還被廣泛地移植到Windows和Mac OS上。
GNU 包含3個協議條款,
GPL:GNU通用公共許可證(GNU General Public License)
LGPL:GNU較寬鬆公共許可證 (GNU Lesser General Public License), ) ,舊稱 GNU Library General Public License (GNU 庫通用公共許可證);
GFDL : GNU自由文檔許可證(GNU Free Documentation License )的縮寫形式。
Linux內核的締造者Linus Torvalds Linux內核的締造者Linus Torvalds
這裏指的自由,並不是價格免費,這和價格無關而是使用軟件對所有的用户來説是自由的。GPL通過如下途徑實現這一目標:
1.它要求軟件以源代碼的形式發佈,並規定任何用户能夠以源代碼的形式將軟件複製或發佈給別的用户。
2.如果用户的軟件使用了受 GPL 保護的任何軟件的一部分,那麼該軟件就繼承了 GPL 軟件,並因此而成為 GPL 軟件,也就是説必須隨應用程序一起發佈源代碼。
3.GPL 並不排斥對自由軟件進行商業性質的包裝和發行,也不限制在自由軟件的基礎上打包發行其他非自由軟件。
由於GPL很難被商業軟件所應用,它要求調用它的庫的代碼也得GPL,全部開放,並且一同發佈,不能直接連接。所以後來GNU推出了LGPL許可證
在GPL與LGPL許可證保護下發布源代碼的結果很相似,對舊代碼所做的任何修改對於想知道這些代碼的人必須是公開的,唯一真正的不同之處在於私人版權代碼是否可以與開放源代碼相互連接,LGPL允許實體連接私人代碼到開放源代碼,並可以在任何形式下發布這些合成的二進制代碼。只要這些代碼是動態連接的就沒有限制。(使用動態鏈接時,即使是程序在運行中調用函數庫中的函數時,應用程序本身和函數庫也是不同的實體)

GNU許可證

GNU 認為任何軟件都應當以 自由軟件 發佈。要讓一個軟件成為自由軟件,您需要把它以自由軟件許可證發佈。我們通常使用 GNU 通用公共許可證 (GNU GPL) 發佈軟件,但有時我們也使用 其它自由軟件許可證 發佈軟件。在 GNU 軟件包中,GNU 只使用與GNU GPL兼容的許可證。
自由軟件的文檔應當是 自由文檔 ,以便人們可以隨着軟件的改進去更新它或是重新發布它。若要把文檔以自由文檔的形式發佈,您需要使用自由文檔許可證。我們通常使用 GNU 自由文檔許可證 (GNU FDL) ,但少數情況下我們也使用 其它的自由文檔許可證 。
如果您開展了一個新的項目,但不太確定應該選用何種許可證,那麼 “如何為您的作用選擇一個許可證” 一文可以以一種簡單且容易遵循的方式給您以幫助。我們正在進一步修訂我們的文檔許可證,同時歡迎聽到您對提案的建議。請訪問 許可證更新網站 閲讀最新的草案並參與到修訂過程中。 [2] 

GNU組成

主條目:GNU軟件包列表
該系統的基本組成包括GNU編譯器套裝(GCC)、GNU的C庫(glibc)、以及GNU核心工具組(coreutils),另外也是GNU除錯器(GDB)、GNU二進制實用程序(binutils)的GNU Cashshell中和GNOME桌面環境。GNU開發人員已經向GNU應用程序和工具的Linux移植,也廣泛應用在其它操作系統中使用,如BSD變體的Solaris,和OS X作出了貢獻。
許多GNU程序已經被移植到其他操作系統,包括專有軟件,如Microsoft Windows和OS X.GNU計劃已經被證明是比他們的專有Unix更為可靠。截至2015年11月,全國共有466 GNU軟件包(包括退役,但不包括383 )主辦的官方GNU開發的網站。

GNUGNU 變種

主條目:GNU variants
GNU項目的官方核心是GNU Hurd;然而,截至2012年,Linux核心正式以Linux-libre為名成為GNU項目中的一部分,並刪除了所有專有組件的變種 [3] 
像FreeBSD內核其他核心依然和GNU軟件合作,形成一個工作的操作系統。FSF認為Linux核心,與GNU工具和實用程序使用時,應承認自己為GNU變種,並促進改成GNU/Linux的這類系統名稱(導致GNU/Linux命名爭議) 。GNU工程已認可的Linux發行版,如gNewSenseTRISQUELParabola GNU/Linux-libre。不使用Hurd作為核心的GNU的其他變種包括的Debian GNU / kFreeBSD和Debian GNU / NetBSD的,將得以對BSD的核心實現GNU的早期計劃。
參考資料