解釋
GNU是“GNU is Not Unix”的遞歸縮寫。Stallman宣布GNU應當發音為Guh-NOO以避免與new這個單詞混淆(注:Gnu在英文中原意為非洲牛羚,發音與new相同)。UNIX是一種廣泛使用的商業操作系統的名稱。由于GNU将要實現UNIX系統的接口标準,因此GNU計劃可以分别開發不同的操作系統部件。GNU計劃采用了部分當時已經可自由使用的軟件,例如TeX排版系統和XWindow視窗系統等。不過GNU計劃也開發了大批其他的自由軟件。
曆史
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)。
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通過如下途徑實現這一目标:
1.它要求軟件以源代碼的形式發布,并規定任何用戶能夠以源代碼的形式将軟件複制或發布給别的用戶。
2.如果用戶的軟件使用了受 GPL 保護的任何軟件的一部分,那麼該軟件就繼承了 GPL 軟件,并因此而成為 GPL 軟件,也就是說必須随應用程序一起發布源代碼。
3.GPL 并不排斥對自由軟件進行商業性質的包裝和發行,也不限制在自由軟件的基礎上打包發行其他非自由軟件。
由于GPL很難被商業軟件所應用,它要求調用它的庫的代碼也得GPL,全部開放,并且一同發布,不能直接連接。所以後來GNU推出了LGPL許可證。
在GPL與LGPL許可證保護下發布源代碼的結果很相似,對舊代碼所做的任何修改對于想知道這些代碼的人必須是公開的,唯一真正的不同之處在于私人版權代碼是否可以與開放源代碼相互連接,LGPL允許實體連接私人代碼到開放源代碼,并可以在任何形式下發布這些合成的二進制代碼。隻要這些代碼是動态連接的就沒有限制。(使用動态鍊接時,即使是程序在運行中調用函數庫中的函數時,應用程序本身和函數庫也是不同的實體)。
自由軟件
“自由軟件” 是權利問題,不是價格問題。要理解這個概念,自由應該是“言論自由”中的“自由”,而不是“免費啤酒”中的“免費”。
自由軟件關乎使用者運行、複制、發布、研究、修改和改進該軟件的自由。 更精确地說,自由軟件賦予軟件使用者四種自由:
不論目的為何,有運行該軟件的自由(自由之零)。
有研究該軟件如何運行,以及按需改寫該軟件的自由(自由之一)。取得該軟件源代碼為達成此目的之前提。
有重新發布拷貝的自由,這樣你可以借此來敦親睦鄰(自由之二)。
有改進該軟件,以及向公衆發布改進的自由,這樣整個社群都可受惠(自由之三)。取得該軟件源碼為達成此目的之前提。