解釋 GNU是“GNU is Not Unix”的
遞歸縮寫 。Stallman宣布GNU應當發音為Guh-NOO以避免與new這個單詞混淆(註:Gnu在英文中原意為非洲牛羚,發音與new相同)。UNIX是一種廣泛使用的商業作業系統的名稱。由於GNU將要實現UNIX系統的接口標準,因此GNU計畫可以分別開發不同的作業系統部件。GNU計畫採用了部分當時已經可自由使用的軟體,例如TeX排版系統和X Window視窗系統等。不過GNU計畫也開發了大批其他的自由軟體。
Stallman 歷史 1985年Richard Stallman又創立了
自由軟體基金會 (Free Software Foundation)來為GNU計畫提供技術、法律以及財政支持。儘管GNU計畫大部分時候是由個人自願無償貢獻,但FSF有時還是會聘請程式設計師幫助編寫。當GNU計畫開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之後被Red Hat兼併的 Cygnus Solutions。
到了1990年,GNU計畫已經開發出的軟體包括了一個功能強大的文字編輯器
Emacs 。
GCC (GNU Compiler Collection,GNU
編譯器 集合),是一套由 GNU 開發的程式語言編譯器。以及大部分UNIX系統的
程式庫 和工具。唯一依然沒有完成的重要組件就是作業系統的
核心 (稱為HURD)。
GNU作業系統的核心Linux 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 )的縮寫形式。
這裡指的自由,並不是價格免費,這和價格無關而是使用軟體對所有的用戶來說是自由的。GPL通過如下途徑實現這一目標:
Linux核心的締造者Linus Torvalds 1.它要求軟體以
原始碼 的形式發布,並規定任何用戶能夠以原始碼的形式將軟體複製或發布給別的用戶。
2.如果用戶的軟體使用了受 GPL 保護的任何軟體的一部分,那么該軟體就繼承了 GPL 軟體,並因此而成為 GPL 軟體,也就是說必須隨應用程式一起發布原始碼。
3.GPL 並不排斥對自由軟體進行商業性質的包裝和發行,也不限制在自由軟體的基礎上打包發行其他非自由軟體。
由於GPL很難被
商業軟體 所套用,它要求調用它的庫的代碼也得GPL,全部開放,並且一同發布,不能直接連線。所以後來GNU推出了LGPL許可證
在GPL與LGPL許可證保護下發布
原始碼 的結果很相似,對舊代碼所做的任何修改對於想知道這些代碼的人必須是公開的,唯一真正的不同之處在於私人著作權代碼是否可以與
開放原始碼 相互連線,LGPL允許實體連線私人代碼到開放原始碼,並可以在任何形式下發布這些合成的
二進制代碼 。只要這些代碼是動態連線的就沒有限制。(使用
動態連結 時,即使是程式在運行中調用函式館中的函式時,應用程式本身和函式館也是不同的實體)
許可證 GNU 認為任何軟體都應當以
自由軟體 發布。要讓一個軟體成為
自由軟體 ,您需要把它以自由軟體
許可證 發布。我們通常使用 GNU 通用公共許可證 (
GNU GPL ) 發布軟體,但有時我們也使用 其它自由軟體許可證 發布軟體。在 GNU 軟體包中,GNU 只使用與GNU GPL兼容的許可證。
自由軟體的文檔應當是 自由文檔 ,以便人們可以隨著軟體的改進去更新它或是重新發布它。若要把文檔以自由文檔的形式發布,您需要使用自由文檔許可證。我們通常使用 GNU 自由文檔許可證 (GNU FDL) ,但少數情況下我們也使用 其它的自由文檔許可證 。
如果您開展了一個新的項目,但不太確定應該選用何種許可證,那么 “如何為您的作用選擇一個許可證” 一文可以以一種簡單且容易遵循的方式給您以幫助。我們正在進一步修訂我們的文檔許可證,同時歡迎聽到您對提案的建議。請訪問 許可證更新網站 閱讀最新的草案並參與到修訂過程中。
組成 主條目: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開發的網站。
GNU 變種 主條目:GNU variants
GNU項目的官方核心是GNU Hurd;然而,截至2012年,Linux核心正式以
Linux-libre 為名成為GNU項目中的一部分,並刪除了所有專有組件的變種。
像FreeBSD核心其他核心依然和GNU軟體合作,形成一個工作的作業系統。FSF認為Linux核心,與GNU工具和實用程式使用時,應承認自己為GNU變種,並促進改成
GNU/Linux 的這類系統名稱(導致
GNU/Linux命名爭議 ) 。GNU工程已認可的Linux發行版,如
gNewSense ,
TRISQUEL 和Parabola GNU/Linux-libre。不使用Hurd作為核心的GNU的其他變種包括的Debian GNU / kFreeBSD和Debian GNU / NetBSD的,將得以對BSD的核心實現GNU的早期計畫。