版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國]-GNOME事件

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

GNOME是 Linux及各種主流Unix的GUI桌面系統(tǒng)。目前,在 GNOME上面已經(jīng)發(fā)展了許多自由應(yīng)用軟件,如文字處理軟件Go、電子表格軟件 Gnumeric、日歷程序GNOMECAL、可與 Photoshop媲美的圖形圖像處理軟件GIMP等。與KDE一樣,GNOME項(xiàng)目為Linux 在桌面領(lǐng)域的發(fā)展及應(yīng)用起到了至關(guān)重要的作用。

GNOME簡介GNOME不像KDE那樣有許多自己開發(fā)的工具,而是比較傾向于集成現(xiàn)有的X應(yīng)用程序,可以允許用戶選用任何種窗口管理程序(一般是 Windowmaker和 Enlightenment)。GNOME也有自己的辦公軟件 GNOME Office,它也是開放源代碼的免費(fèi)軟件。 GNOME的應(yīng)用開發(fā)采用同樣基于CORBA的 Bonobo,類似 Microsoft的OLE2

GNOME桌面環(huán)境包括:

GNOME桌面 applet、 caplet、 panel.、wminteraction(sm、 pager、 footmen等)、 desktop( Iconsfile manager)

sGNOME開發(fā)平臺(tái)GTK+、 NOME Widgets、Component Model、FS、 Imaging、SM、il8n,主要的技術(shù)是 bonobo、XMIL、 imaging(包括 Gnome.- Print)

GNOME Office Abiword、 gnumeric、GIMP、Dia、 Eye Of GNOME(EOG)、 GNOME-PIMGNOME-DB。

更加重要的一點(diǎn)是, GNOME是一個(gè)大型的GNU自由軟件項(xiàng)目,由許多人通過合作創(chuàng)建。在 GNOME社區(qū)中,大多數(shù)人是自愿參與進(jìn)來的,只在業(yè)余時(shí)間對(duì)項(xiàng)目進(jìn)行維護(hù):也有一部分人是通過雇傭方式全日工作的,但只占整個(gè)社區(qū)很小的一部分??梢哉f, GNOME的成功乃至未來都依賴著這些社區(qū)貢獻(xiàn)者們:同時(shí),一些商業(yè)公司的加入及扶持也對(duì)該項(xiàng)目的發(fā)展錦上花1。

GNOME的發(fā)展歷程日前,世界上有數(shù)以千計(jì)的 Linux及相關(guān)自由軟件項(xiàng)目有待發(fā)展。一個(gè)項(xiàng)目從產(chǎn)生到成功承受著多方面條件的約束,適當(dāng)?shù)某砷L時(shí)機(jī)和環(huán)境、有能力的組織者和帶頭人、優(yōu)秀的參與者、商業(yè)基金資助等環(huán)節(jié)缺一不可。GNOME也不例外。

萌芽1996年,正值自由軟件發(fā)展的年代。一個(gè)墨西哥籍青年 Miguel de Icaza與他的一個(gè)在 Red Hat公司工作的朋友 Elliot Lee,時(shí)常在一起討論有關(guān)自由軟件的話題,并為促進(jìn)自由軟件的向前發(fā)展做著各種努力,在Windows95推出之后,這兩個(gè)人都不約而同地感覺到,相對(duì)而言,自由軟件體系缺乏很多技術(shù)元素,使得其在很多領(lǐng)城落在后面。

當(dāng)時(shí) Icaza正在為 Linux/SGI項(xiàng)目(由SGI公司提供部分基金支持的一個(gè) Linux項(xiàng)目)工作。他不時(shí)地抽時(shí)間在一些自由軟件相關(guān)工作上,カ圖縮短 Linux和專有軟件之間的差距。在與一位朋友討論時(shí),其認(rèn)為自由軟件桌面程序缺乏OLE模式的東西的想法,給了Icaza一些啟發(fā)、他與 Elliot Lee起進(jìn)行了一些初步嘗試,比如,使用 libapp功能庫來訪問應(yīng)用程序的公共資源(配置管理、近期使用的文件記錄、mime句樹等)。雖然這項(xiàng)工作最終并沒有真正究成,但卻萌發(fā)了要生產(chǎn)一整套桌面系統(tǒng)的想法。

當(dāng)時(shí),KDE項(xiàng)目進(jìn)展得十分順利,并且功能已經(jīng)相對(duì)完善,Icaca對(duì)此到十分高興,并寫信給他們建議把KDE的代碼納入 Red Hat發(fā)行版,還曾致信給 Richard Stallman(GNU組織者),讓他了解有這樣一個(gè)有趣的項(xiàng)目存在(KDE當(dāng)時(shí)是基于 GNU GPL的項(xiàng)目)。但 Icaza很快得到回信:Qt是商業(yè)軟件,不允許用戶修改或發(fā)行修改后的烤貝,因而違反了GPL的相關(guān)條例,而KDE對(duì)Qt的依賴性導(dǎo)致其中的部分程序是非自由軟件。

出于對(duì)自由軟件的熱愛, Icaza也曾與Qt的所有者 TrollTeh取得聯(lián)系·希望可以修改Qt的相關(guān)許可規(guī)則,但是始終沒有得到回復(fù)。經(jīng)過一段時(shí)間的等待后,他決定自己親自組織一個(gè) Linux桌面系統(tǒng)的項(xiàng)目。

誕生Icaza從墨西哥國立自治大學(xué)計(jì)算機(jī)科學(xué)專業(yè)物色了兩名學(xué)生- Arturo Espinos和 Federico Mena,與他一同從事開發(fā)工作,同時(shí)他們也在為器西研 Linux用戶協(xié)會(huì)( LinuxUsers Group)工作。

在1997年的夏季,Icaza受一個(gè)朋友的邀請(qǐng)來到微軟,開發(fā)基于 SPARC的 Internet Explorer for Solaris系統(tǒng)(因?yàn)槠浼夹g(shù)專長就是 Linux/ SPARC)。在微軟,他學(xué)到了一些關(guān)于 Activex和COM的知識(shí),并開始對(duì)這種技術(shù)非常著迷。在那里,他還巧遇了一直以來在 Linuxnet IRC交流的幾個(gè)網(wǎng)友。當(dāng)他再次返回西研時(shí),便與 Federico著手設(shè)計(jì)一套GUI控制的基礎(chǔ)構(gòu)架(基于UniX系統(tǒng)),并將其命名為GNOME。

在最初的嘗試中,他們想開發(fā)一個(gè)Qt程序的替代品。如果重新完成一套API將很可能導(dǎo)致軟件效率的下降,而且可能會(huì)占用很久的時(shí)間, Gnustep、wine和 LessTif是當(dāng)時(shí)在代替專有API方面比較成熟的三個(gè)軟件。 Icaza組織了Linux Net絡(luò)和 Linux頻道的許多網(wǎng)友,共同參與到這個(gè)項(xiàng)的開發(fā)中來。

1997年8月, GNOME項(xiàng)目正式啟動(dòng)。該項(xiàng)目的宣言草稿被送給 Richard Stallman、 Elliot Lee等多個(gè)關(guān)心該項(xiàng)目的朋友處進(jìn)行修改。當(dāng)項(xiàng)目的前期準(zhǔn)備工作完成后,Icaza和Federico便著手在GIMP、Guil郵件列表、GNU項(xiàng)目聲明郵件列表中分發(fā)了項(xiàng)目聲明,以此來吸引更多的人加入。

郵件列表發(fā)揮了重要作用,來自郵件列表的參與者們做了很多貢獻(xiàn),隊(duì)伍很快地?cái)U(kuò)大到了200多人。參與者們使用CORBA作為組件結(jié)構(gòu)的基礎(chǔ),并使用 Docbook來寫GNOME的文件系統(tǒng)。在這個(gè)過程中,他們經(jīng)歷了嘗試和碰壁,終于在技術(shù)上摸出了一條路子。

漸漸步入正軌后,初創(chuàng)的兒個(gè)人注冊(cè)了 gnome,org域名,GNOME的開發(fā)重心很快地轉(zhuǎn)移到這個(gè)社區(qū)中來。同年11月,GNOME社區(qū)聚集了足夠的能量, Icaza和 Federico推掉了其它項(xiàng)目,全身心地投入到開發(fā)中來。很快地,在同年的12月,他們與 Red Hat取得合作,1998年1月,共同建立了Red1Hat高級(jí)開發(fā)實(shí)驗(yàn)室( Red HatAdvanced Development Labs)。這是為改進(jìn) GNOME而成立的第一開發(fā)梯隊(duì)。

轉(zhuǎn)折1998年月,Qt2.0即將發(fā)布之際,該軟件公布了個(gè)新的許可協(xié)議,以便配合開放源碼的定義。這項(xiàng)聲明使得 Harmony(克隆 Qt API的免費(fèi)軟件)徹底地垮臺(tái),同時(shí)也使人們的視線從剛起步的 GNOME身上轉(zhuǎn)移到KDE身上。

另一方面,由于發(fā)展的時(shí)間較短,次年3月發(fā)布的GNOME10這一版本中存在了很多漏洞,為其在穩(wěn)定性方面帶來了較壞的名聲。面對(duì)這些情況, GNOME社區(qū)盡可能及時(shí)地修補(bǔ)了很多人們反饋的錯(cuò)誤,并不斷地發(fā)布新的軟件包來彌補(bǔ)它們。在包含 GNOME10.xx版的 Red Hat5.0發(fā)布時(shí),一并發(fā)布了 GNOME的眾多Bug補(bǔ)丁程序,在RedHat的該發(fā)行版中,也包含了KDE。

系統(tǒng)的不夠穩(wěn)定及競(jìng)爭對(duì)手給予的強(qiáng)烈壓力,使得GNOME社區(qū)成員們感到了危機(jī)。但是,通過不斷地吸取經(jīng)驗(yàn)教訓(xùn),他們最終度過了難關(guān)。

一個(gè) Linux項(xiàng)目的發(fā)展,需要更多資金及專業(yè)人士的支持。同時(shí),也待被業(yè)界承認(rèn)。因此, GNOME基金會(huì)的建立不能不說是其一個(gè)重要的轉(zhuǎn)折點(diǎn)。

隨著 GNOME的不斷完善,很多支持開放源碼的公司也加人進(jìn)來,對(duì) GNOME用戶環(huán)境的開發(fā)及基于 GNOME的技術(shù)開發(fā)進(jìn)行支持。

在2000年8月舉行的 Linux World展會(huì)上, GNOME基金會(huì)童布成立。Sun公司在其 Solaris系統(tǒng)中采用了 GNOME技術(shù),并在其開放套件 Staroffice l中繼承了 GNOME Bonobo組件架構(gòu):HP公司將 GNOME應(yīng)用到IIP-UX操作系統(tǒng)的用戶環(huán)境中。IBM更是將其 Sashxb加速開發(fā)環(huán)境貢獻(xiàn)給了GNOME。

與此同時(shí), GNOME還與 Mozilla集成到一起,并吸收了Openoffice的相關(guān)技術(shù)。 GNOME項(xiàng)目及社區(qū)因此而受益距淺。其中,Sun對(duì)于 GNOME的承認(rèn)及支持產(chǎn)生了廣泛的影響,其開發(fā)團(tuán)隊(duì)亦參與到 GNOME相關(guān)技術(shù)的開發(fā)研究中來在2000年9月,Sun公司宜布成立一個(gè)可訪間實(shí)驗(yàn)室( Accessability Lab),幫助增強(qiáng) GNOME1。

GNOME的開發(fā)領(lǐng)域訪問程序。這項(xiàng)工作的目的是為了提高 GNOMEI的易訪問性,從Gtk+小窗口到終端的閱讀用戶都可實(shí)現(xiàn)訪問,并提供多種特殊硬件設(shè)備的支持

文檔。這是 GNOME的一項(xiàng)十分巨大的工作,包括用戶文檔(如程序 Manual、用戶FAQ、 GNOME介紹)和開發(fā)者文擋(如 GNOME技術(shù)自皮書、開發(fā)者指南、開發(fā)者FAQ和API文檔)。同時(shí),除了文檔的撰寫外,還有編和索引整理等工作。該項(xiàng)工作目前需要大量人員支援。

圖形。 GNOME需要幾種不同類別的圖形,分別應(yīng)用在網(wǎng)頁、桌面、選單及特殊應(yīng)用程序中。

打包。這不僅包括源代碼的打包,還包括釋放軟件包、從CVS更新的程序源碼,以及為發(fā)行和安裝打包。

質(zhì)量檢驗(yàn)。為了使 GNOME盡可能地穩(wěn)定、高效、低Bug,這項(xiàng)工作必不可少。主要進(jìn)行程序擴(kuò)展性測(cè)試,挑出Bug并將其報(bào)告給 GNOME錯(cuò)誤跟蹤數(shù)據(jù)庫。

聲音。在 GNOME的桌面事件、程序、游戲等中都需要不同類型的聲音。目前, GNOME的聲音系統(tǒng)還僅局在有限系列中,急需人手來制造出高質(zhì)量、高表現(xiàn)力的聲音

翻譯。 GNOME要想被世界上更多的用戶接受,本地化是待完普的工作之一、已被列入 GNOME未來發(fā)展計(jì)劃。該工作量是十分巨大的一對(duì)于每一種語言,都要進(jìn)行全面的翻譯,包括對(duì)話框、選單、每個(gè)應(yīng)用程序的按鈕的字符串,以及用戶手冊(cè)等多種文檔?,F(xiàn)在我們?cè)谑褂?Red Hat9.0附帶的 GNOME時(shí),還經(jīng)常會(huì)遇到局部漢化的間題,這正說明這項(xiàng)工作的必要性。

用戶界面。該項(xiàng)目簡稱GUP界面設(shè)計(jì),使GNOME更易于使用和接近。

網(wǎng)頁設(shè)計(jì)和開發(fā)。 GNOME網(wǎng)站是社區(qū)成員活動(dòng)頻繁的領(lǐng)域,以及外界接觸 GNOME項(xiàng)目的窗口。因而這項(xiàng)工作也尤為重要。要求開發(fā)者懂得PHP、MySL、WML或其它腳本編寫知識(shí)。

程序開發(fā)。主要是桌面系統(tǒng)中應(yīng)用程序的開發(fā)。這項(xiàng)工作并不限定8與者一定要在既定的項(xiàng)日中進(jìn)行選擇一有能力的人究全可以重起爐灶,另辟矚徑,從而體現(xiàn)個(gè)人的創(chuàng)遺力。如果參與這方面的開發(fā),可以有機(jī)會(huì)與其他優(yōu)秀的GNOME開發(fā)者一起工作、思考,井從他們身上學(xué)習(xí)更多的經(jīng)驗(yàn)和知識(shí)。

GNOME平臺(tái)開發(fā)。該平臺(tái)是一系列的庫和工具,應(yīng)用程序便建立在其上。

開發(fā)者工具開發(fā)。開發(fā)者本身也需要很多開發(fā)工具GUI- builder(如 Glade)、IDEs、字符處理工具( gettext)、錯(cuò)誤跟器、內(nèi)存編譯工具( metro)、版本修訂控制系統(tǒng)(CVS)、構(gòu)造工具( autoconf、 automake),以及許多其它工具。另外,圖片及文檔作者、翻譯人員也需要一系列的工具來完善和保障工作質(zhì)量1。

本詞條內(nèi)容貢獻(xiàn)者為:

李嘉騫 - 博士 - 同濟(jì)大學(xué)