GNU計畫

GNU計畫

GNU計畫,有譯為“革奴計畫”,是由理察·斯托曼在1983年9月27日公開發起的自由軟體集體協作計畫。它的目標是創建一套完全自由的作業系統GNU

基本介紹

  • 中文名:“革奴計畫”
  • 外文名:GNU計畫
  • 發起者理察·斯托曼
  • 發起時間:1983年9月27日
簡介,發展歷程,軟體開發,特性,項目工程,

簡介

GNU計畫,有譯為“革奴計畫”,是由理察·斯托曼在1983年9月27日公開發起的,它的目標是創建一套完全自由的作業系統。理察·斯托曼最早是在net.unix-wizards新聞組上公布該訊息,並附帶一份《GNU宣言》等解釋為何發起該計畫的文章,其中一個理由就是要“重現當年軟體界合作互助的團結精神”。
GNU是“GNU's Not UNIX”的遞歸縮寫,為避免與gnu(非洲牛羚,發音與“new”相同)這個單詞混淆,斯托曼宣布GNU應當發音為“Guh-NOO”(/ˈgnuː/ (幫助·關於)),與“canoe”發音相似。
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自由文檔許可證這兩種協定條款。

發展歷程

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類似的操作環境。從那時開始,許多程式設計師聚集起來開始開發一個自由的、高質量、易理解的軟體。

軟體開發

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

項目工程

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產品的啟發而製作的基於向量的繪圖程式。

相關詞條

熱門詞條

聯絡我們