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

GNU計劃

鎖定
GNU計劃,有譯為“革奴計劃”,是由理查德·斯托曼在1983年9月27日公開發起的自由軟件集體協作計劃。它的目標是創建一套完全自由的操作系統GNU
中文名
革奴計劃
外文名
GNU's Not UNIX
發起者
理查德·斯托曼
發起時間
1983年9月27日
簡    稱
GNU計劃
組織目標
創建一套完全自由的操作系統GNU

GNU計劃簡介

GNU計劃,有譯為“革奴計劃”,是由理查德·斯托曼在1983年9月27日公開發起的,它的目標是創建一套完全自由的操作系統。 [1]  理查德·斯托曼最早是在net.unix-wizards新聞組上公佈該消息,並附帶一份《GNU宣言》等解釋為何發起該計劃的文章,其中一個理由就是要“重現當年軟件界合作互助的團結精神”。 [2] 
GNU是“GNU's Not UNIX”的遞歸縮寫,為避免與gnu(非洲牛羚,發音與“new”相同)這個單詞混淆,斯托曼宣佈GNU應當發音為“Guh-NOO”(/ˈgnuː/ (幫助·關於)),與“canoe”發音相似。 [1] 
UNIX是一種廣泛使用的商業操作系統的名稱。由於GNU將要實現UNIX系統的接口標準,因此GNU計劃可以分別開發不同的操作系統。GNU計劃採用了部分當時已經可自由使用的軟件,例如TeX排版系統和X Window視窗系統等。不過GNU計劃也開發了大批其他的自由軟件,這些軟件也被移植到其他操作系統平台上,例如Microsoft Windows、BSD家族、Solaris及MacOS。
為保證GNU軟件可以自由地“使用、複製、修改和發佈”,所有GNU軟件都包含一份在禁止其他人添加任何限制的情況下,授權所有權利給任何人的協議條款,GNU通用公共許可證(GNU General Public License,GPL)。這個就是被稱為‘公共版權’的概念。GNU也針對不同場合,提供GNU寬通用公共許可證GNU自由文檔許可證這兩種協議條款。 [3] 

GNU計劃發展歷程

1985年,理查德·斯托曼又創立了自由軟件基金會(Free Software Foundation)來為GNU計劃提供技術、法律以及財政支持。儘管GNU計劃大部分時候是由個人自願無償貢獻,但FSF有時還是會聘請程序員幫助編寫。當GNU計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之後被Red Hat兼併的Cygnus Solutions。
到了1990年,GNU計劃已經開發出的軟件包括了一個功能強大的文字編輯器EmacsC語言編譯器GCC以及大部分UNIX系統的程序庫和工具。唯一依然沒有完成的重要組件,就是操作系統的內核(稱為HURD)。
1991年,林納斯·託瓦茲編寫出了與UNIX兼容的Linux操作系統內核並在GPL條款下發布。Linux之後在網上廣泛流傳,許多程序員參與了開發與修改。
1992年,Linux與其他GNU軟件結合,完全自由的操作系統正式誕生。該操作系統往往被稱為“GNU/Linux”或簡稱Linux。(儘管如此,GNU計劃自己的內核Hurd依然在開發中,目前已經發布Beta版本。)
許多UNIX系統上也安裝了GNU軟件,因為GNU軟件的質量比之前UNIX的軟件還要好。GNU工具還被廣泛地移植到Windows和Mac OS上。
GNU工程十幾年以來已經成為一個對軟件開發主要的影響力量,創造了無數的重要的工具,例如:強健的編譯器,有力的文本編輯器,甚至一個全功能的操作系統。這個工程是從1984年麻省理工學院的程序員理查德·斯托曼的想法得來的,他想要創建一個自由的、和UNIX類似的操作環境。從那時開始,許多程序員聚集起來開始開發一個自由的、高質量、易理解的軟件。 [3] 

GNU計劃軟件開發

到上世紀90 年代初,GNU 項目已經開發出許多高質量的免費軟件,其中包括有名的emacs 編輯系統、bash shell 程序、gcc 系列編譯程序、gdb 調試程序等等。這些軟件為Linux 操作系統的開發創造了一個合適的環境,是Linux 能夠誕生的基礎之一。以至於目前許多人都將Linux 操作系統稱為"GNU/Linux"操作系統。 [1] 
一個利用 Lisp 編寫的Emacs文本編輯器,一個原碼級的調試器,一個與 yacc 兼容的語法分析器,一個連接器,和大概 35 個應用程序。有一個 shell (命令解釋器)已經接近完成。一個新的、具可移植性的、有優化功能的C編譯器已經可以自我編譯,並應可以在今年發佈。還有一個初具規模的內核但是需要更多的特性以模擬 UNIX。當內核和編譯器工作完成後,我們就能夠發佈一個適合軟件開發的 GNU 系統。我們會使用 TeX 作我們的文本編輯器,但是也正在編寫一個 nroff。我們也會用免費的、具可移植性的 X 視窗系統。之後我們會加一個可移植的 Common Lisp、一個 Empire 遊戲、一個電子表格軟件、和其他各式各樣的東西,以及在線的文檔。
開源項目:GNU系列:GNU Emacs,GNU調試器。 [4] 

GNU計劃特性

GNU 將能夠執行 Unix 的程序,但是不會和 Unix 完全一樣,特別是GNU計劃擁有支持更長文件名、文件版本號、一個不怕死機的文件系統,或許還要有自動文件名補全、與終端機無關的顯示支持、可能最後還要有一個基於Lisp的視窗系統,以使好幾個 Lisp 程序和普通的 Unix 程序能共享同一屏幕。C 和 Lisp 都將成為系統的程序語言。我們會設法支持 UUCP,MIT Chaosnet,及 Internet 的通訊協議。
GNU 最初的目標是在有虛擬內存的 68000/16000 系列機器上開發,因為這樣的環境是最容易開發程序來實現 GNU 的運行。剩下來讓 GNU 能在其它較小的機器上運行的工作,將會留給那些希望能在這些機器上使用的人。
GNU不是公共的,毫無約束的軟件(public domain)。GNU計劃允許每一個人修改及傳播 GNU,但是絕不允許傳播者對他傳播的程序再加進其他的限制。也就是説,不允許將修改後的程序據為己有。GNU計劃希望能確保 GNU 所有的版本都能保持自由。
GNU的核心精神是自由與分享,和hacker精神有異曲同工之妙,雖不能説GNU精神就是hacker精神,不過很難把兩者清楚的分開,實際上很多hacker都為GNU做出了巨大的貢獻。對知識的渴求是支持他們探索的唯一動力。 [5] 

GNU計劃項目工程

Classpath 是一組支持JAVA語言的關鍵庫。
DotGNU是.NET策略的完全替代,由多個軟體計劃組成。
Free Film Project 是一個套完整的工具集,當整合起來使用時可以形成一個完整的虛擬電影工作室。
GPKCS-11 是PKCS#11的一個實現:加密介面標準。
GNU Cobol是為COBOL語言創建一個編譯程序的一個結果。
Gnucomm 計劃目的在於為一般的通訊問題提供更好的解決方案。
GNU Enterprise 的宗旨是為各種商務需求開發一個完整的系統。
GNU GLUE 目的在於建立一個分佈式的羣件應用框架,這些應用基於新出現的互聯網標準。比如,XML WEBDAV和RTSP,並適用於同步和異步以及在線和離線操作。
GNU Octal 計劃目的在於建立一組自由組件,這些組件一起作為一個類UNIX系統的數位音樂工作站工作。
GYVE代表``GNU向量編輯器(GNU Yellow Vector Editor)''。它是一個受到Adobe公司的Illustrator和Corel Draw產品的啓發而製作的基於向量的繪圖程序。 [6] 
參考資料