什麼叫做GNU

GNU就是GNU's Not Unix的縮寫, GNU 的創始人Stallman 認爲UNIX 雖然不是最
好的操作系統,但是至少不會太差,而他自信有能力把UNIX不足的地方加以改進,使它
成爲一個優良的操作系統, 就是名爲 GNU的一個同UNIX兼容的操作系統,並且開發這
個系統的目的就是爲了讓所有計算機用戶都可以自由地獲得這個系統。任何人都可以免費
地獲得這個系統的源代碼,並且可以相互自由拷貝。因而在使用GNU軟件的時候我們可以
理直氣壯地說我們使用的是正版軟件。當然GNU也是有自己的版權聲明(即GPL,見附
錄A)的,就是它有名的Copyleft(相對於版權的英文Copyright),就是用戶獲得GNU
軟件後可以自由使用和修改,但是用戶在散佈GNU軟件時,必須讓下一個用戶有獲得源代
碼的權利並且必須告知他這一點。這一條看似古怪的規定是爲了防止有些別有用心的人或
公司將GNU軟件稍加修改就去申請版權,說成是自己的產品。其目的就是要讓GNU永遠
是免費和公開的。

    GNU是誰發起的?GNU 是由自由軟件基金會 (Free SoftwareFoundation,FSF)
的董事長Richard M.Stallman (RMS)於1984年發起的,如今已經有十幾年的歷史了。  
Stallman本來是在美國麻省理工學院的人工智能實驗室從事研究工作的研究員, 同時也是
世界上可數的幾個頂尖程序員之一,他的最著名的作品也是GNU的第一個軟件就是GNU  
Emacs,UNIX平臺上的一個編輯器。這個軟件推出後受到廣大UNIX用戶 的熱烈歡迎,
由於它同時提供源代碼,大家都熱心地替它排除錯誤,增加功能,它的功能越來越強大,
終於成爲UNIX平臺上最好的編輯器,上至CRAY超級計算機,下至最普遍的 PC機,從
DOS到Windows,從VMS到UNIX都可以使用這個Emacs。受到這個軟件成功的鼓勵,
Stallman成立了自由軟件基金會,以推廣GNU計劃。 基金會成立之後,主要靠一些廠家
的捐獻和出售GNU程序的使用手冊,以及拷貝GNU軟件的電腦磁帶和光盤來維持,不過
許多硬件廠家開始基金會提供高性能的工作站,這其中包括HP和 SONY,AT&T這樣的
國際性大公司。  

    GNU目前已經推出的軟件主要由Emacs──功能強大的編輯環境,GCC──性能優
異的多平臺的C,C++,Fortran編譯器和其他40多種軟件。其中GCC的成功爲GNU帶
來了前所未有的影響。GCC是一種可以在11種硬件平臺上編譯出可執行程序的超級編譯
器,而且其執行效率更是驚人,與一般的編譯器相比平均效率要高20%-30%。這使得很多
商業公司也採用GCC來開發軟件,其中包括像HP公司這樣的專業大公司。 而現在回到蘋
果公司的前NeXT公司總裁斯蒂夫·喬布斯也對Stallman尊敬有加,因爲NeXT公司的軟
件都是用GCC開發的,在PC遊戲中最好的3D射擊遊戲quake(由ID Software公司開發)
也是用GCC的DOS移植版本djgpp編寫的。GCC是C,C++,Objective C(由NeXT公
司貢獻)三者合一的編譯器,它的編譯原理同大多數編譯器不一樣,它先有一個前端處理
程序將C,C++,Ovjective C的語句轉換成爲一個類似於Lisp的內部語言--RTL,再
由一個後端處理程序將其優化後產生目的CPU可以執行的機器代碼,因而對於每種新語言
來說,只要寫好一個新的前端處理程序就可以立刻將此語言移植到GCC已經支持的不同硬
件平臺上去,而且編譯出來的就已經是經過優化的二進制代碼。除了C系列以外,GCC還
有Fortran 77,ada9x,Pascal的前端處理程序。GCC的多平臺的實現方法同JAVA的虛
擬機技術不太一樣,因而其運行速度遠非JAVA能望其項背。

    GNU 開始的策略就是先開發UNIX 已經有的程序(因爲計劃中GNU將會是一個與  
UNIX兼容的操作系統,而UNIX下的標準使用界面已經非常完善了,所以先依照這個標準
開發應用程序,將來GNU 自己的系統核心一出來,就立即可以使用所有先前開發的GNU
應用程序),因此會先有emacs,GCC 等工具軟件開發出來。其中 GCC 更是GNU計劃
自立更生的一個重要步驟(不需要依靠商業軟件來產生/編譯整個GNU系統),如今這套
程序開發工具已經很成熟了。下一步要做的就是開發GNU的核心--Hurd了,只要Hurd
一開發出來,GNU 就是一套能夠自我開機,真正自給自足,完整的自由操作系統。Hurd
是基於Mach這個微內核(micro kernel)上的操作系統核心。 以後會使用尤他大學的Mach4
(一個更爲方便和快速的微內核),由於Hurd基於Mach,所以只要Mach移植到什麼機
器上,Hurd也立刻就是這種硬件平臺的操作系統,就這一點而言,它是一種很前衛的操作
系統。

    但是Linux 在短短的幾年內崛起,也使用GNU 的版權聲明,大有取代Hurd 之勢。
在網絡上甚至有不少人認爲Hurd應該停止開發, 因爲  Linux系統已經十分成熟,GNU  
實際上可以使用Linux當作核心,也能構成一套完整的操作系統。甚至連自由軟件基金會
的技術人員也承認,要是Linux早幾年出現,也許就不用發展Hurd 了。但是 Linux 還是
晚了一步,Hurd 已經計劃很久了,技術上有很多非常領先的地方,能夠支持的硬件平臺也
比Linux多,不完成就太可惜了。1994 年 11 月,Hurd 的第一個雛形已經發表; 1995 年  
4 月,也發表了第二次snapshot。Hurd目前的版本是0.2,是1997年6月發佈的,已經可
以獨立安裝與穩定運行了,GNU版本的Mach 目前的版本是1.1.3。與此同時,已經開發
出一個基於微內核的Linux版本了,目前有一個可以在HP-PA RISC機器上運行的Linux系
統。 實際上,自由軟件基金會目前有一套以Linux 爲核心的 GNU 系統計劃。這個計劃
就是自由軟件基金會支持的Debian Linux。Debian Linux 是GNU軟件與公共軟件
(Public DomainSoftware )最徹底的結合,它是一套完全由GNU和公共軟件配置起來的,
而且具有商業操作系統水平的操作系統。


(注一):POSIX(PortableOperating System Interface)標準操作系統界面。
(注二):按照編程人員的習慣,一個軟件在第一次推出前的所有測試版本都不能稱作1.0
版,只能叫作0.3,0.7,0.99版,其數目越接近1,就表明其越來越接近正式發佈。

 

更多介紹請進wdlinux論壇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章