版权归原作者所有,如有侵权,请联系我们

[科普中国]-GNOME事件

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

GNOME是 Linux及各种主流Unix的GUI桌面系统。目前,在 GNOME上面已经发展了许多自由应用软件,如文字处理软件Go、电子表格软件 Gnumeric、日历程序GNOMECAL、可与 Photoshop媲美的图形图像处理软件GIMP等。与KDE一样,GNOME项目为Linux 在桌面领域的发展及应用起到了至关重要的作用。

GNOME简介GNOME不像KDE那样有许多自己开发的工具,而是比较倾向于集成现有的X应用程序,可以允许用户选用任何种窗口管理程序(一般是 Windowmaker和 Enlightenment)。GNOME也有自己的办公软件 GNOME Office,它也是开放源代码的免费软件。 GNOME的应用开发采用同样基于CORBA的 Bonobo,类似 Microsoft的OLE2

GNOME桌面环境包括:

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

sGNOME开发平台GTK+、 NOME Widgets、Component Model、FS、 Imaging、SM、il8n,主要的技术是 bonobo、XMIL、 imaging(包括 Gnome.- Print)

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

更加重要的一点是, GNOME是一个大型的GNU自由软件项目,由许多人通过合作创建。在 GNOME社区中,大多数人是自愿参与进来的,只在业余时间对项目进行维护:也有一部分人是通过雇佣方式全日工作的,但只占整个社区很小的一部分。可以说, GNOME的成功乃至未来都依赖着这些社区贡献者们:同时,一些商业公司的加入及扶持也对该项目的发展锦上花1。

GNOME的发展历程日前,世界上有数以千计的 Linux及相关自由软件项目有待发展。一个项目从产生到成功承受着多方面条件的约束,适当的成长时机和环境、有能力的组织者和带头人、优秀的参与者、商业基金资助等环节缺一不可。GNOME也不例外。

萌芽1996年,正值自由软件发展的年代。一个墨西哥籍青年 Miguel de Icaza与他的一个在 Red Hat公司工作的朋友 Elliot Lee,时常在一起讨论有关自由软件的话题,并为促进自由软件的向前发展做着各种努力,在Windows95推出之后,这两个人都不约而同地感觉到,相对而言,自由软件体系缺乏很多技术元素,使得其在很多领城落在后面。

当时 Icaza正在为 Linux/SGI项目(由SGI公司提供部分基金支持的一个 Linux项目)工作。他不时地抽时间在一些自由软件相关工作上,カ图缩短 Linux和专有软件之间的差距。在与一位朋友讨论时,其认为自由软件桌面程序缺乏OLE模式的东西的想法,给了Icaza一些启发、他与 Elliot Lee起进行了一些初步尝试,比如,使用 libapp功能库来访问应用程序的公共资源(配置管理、近期使用的文件记录、mime句树等)。虽然这项工作最终并没有真正究成,但却萌发了要生产一整套桌面系统的想法。

当时,KDE项目进展得十分顺利,并且功能已经相对完善,Icaca对此到十分高兴,并写信给他们建议把KDE的代码纳入 Red Hat发行版,还曾致信给 Richard Stallman(GNU组织者),让他了解有这样一个有趣的项目存在(KDE当时是基于 GNU GPL的项目)。但 Icaza很快得到回信:Qt是商业软件,不允许用户修改或发行修改后的烤贝,因而违反了GPL的相关条例,而KDE对Qt的依赖性导致其中的部分程序是非自由软件。

出于对自由软件的热爱, Icaza也曾与Qt的所有者 TrollTeh取得联系·希望可以修改Qt的相关许可规则,但是始终没有得到回复。经过一段时间的等待后,他决定自己亲自组织一个 Linux桌面系统的项目。

诞生Icaza从墨西哥国立自治大学计算机科学专业物色了两名学生- Arturo Espinos和 Federico Mena,与他一同从事开发工作,同时他们也在为器西研 Linux用户协会( LinuxUsers Group)工作。

在1997年的夏季,Icaza受一个朋友的邀请来到微软,开发基于 SPARC的 Internet Explorer for Solaris系统(因为其技术专长就是 Linux/ SPARC)。在微软,他学到了一些关于 Activex和COM的知识,并开始对这种技术非常着迷。在那里,他还巧遇了一直以来在 Linuxnet IRC交流的几个网友。当他再次返回西研时,便与 Federico着手设计一套GUI控制的基础构架(基于UniX系统),并将其命名为GNOME。

在最初的尝试中,他们想开发一个Qt程序的替代品。如果重新完成一套API将很可能导致软件效率的下降,而且可能会占用很久的时间, Gnustep、wine和 LessTif是当时在代替专有API方面比较成熟的三个软件。 Icaza组织了Linux Net络和 Linux频道的许多网友,共同参与到这个项的开发中来。

1997年8月, GNOME项目正式启动。该项目的宣言草稿被送给 Richard Stallman、 Elliot Lee等多个关心该项目的朋友处进行修改。当项目的前期准备工作完成后,Icaza和Federico便着手在GIMP、Guil邮件列表、GNU项目声明邮件列表中分发了项目声明,以此来吸引更多的人加入。

邮件列表发挥了重要作用,来自邮件列表的参与者们做了很多贡献,队伍很快地扩大到了200多人。参与者们使用CORBA作为组件结构的基础,并使用 Docbook来写GNOME的文件系统。在这个过程中,他们经历了尝试和碰壁,终于在技术上摸出了一条路子。

渐渐步入正轨后,初创的儿个人注册了 gnome,org域名,GNOME的开发重心很快地转移到这个社区中来。同年11月,GNOME社区聚集了足够的能量, Icaza和 Federico推掉了其它项目,全身心地投入到开发中来。很快地,在同年的12月,他们与 Red Hat取得合作,1998年1月,共同建立了Red1Hat高级开发实验室( Red HatAdvanced Development Labs)。这是为改进 GNOME而成立的第一开发梯队。

转折1998年月,Qt2.0即将发布之际,该软件公布了个新的许可协议,以便配合开放源码的定义。这项声明使得 Harmony(克隆 Qt API的免费软件)彻底地垮台,同时也使人们的视线从刚起步的 GNOME身上转移到KDE身上。

另一方面,由于发展的时间较短,次年3月发布的GNOME10这一版本中存在了很多漏洞,为其在稳定性方面带来了较坏的名声。面对这些情况, GNOME社区尽可能及时地修补了很多人们反馈的错误,并不断地发布新的软件包来弥补它们。在包含 GNOME10.xx版的 Red Hat5.0发布时,一并发布了 GNOME的众多Bug补丁程序,在RedHat的该发行版中,也包含了KDE。

系统的不够稳定及竞争对手给予的强烈压力,使得GNOME社区成员们感到了危机。但是,通过不断地吸取经验教训,他们最终度过了难关。

一个 Linux项目的发展,需要更多资金及专业人士的支持。同时,也待被业界承认。因此, GNOME基金会的建立不能不说是其一个重要的转折点。

随着 GNOME的不断完善,很多支持开放源码的公司也加人进来,对 GNOME用户环境的开发及基于 GNOME的技术开发进行支持。

在2000年8月举行的 Linux World展会上, GNOME基金会童布成立。Sun公司在其 Solaris系统中采用了 GNOME技术,并在其开放套件 Staroffice l中继承了 GNOME Bonobo组件架构:HP公司将 GNOME应用到IIP-UX操作系统的用户环境中。IBM更是将其 Sashxb加速开发环境贡献给了GNOME。

与此同时, GNOME还与 Mozilla集成到一起,并吸收了Openoffice的相关技术。 GNOME项目及社区因此而受益距浅。其中,Sun对于 GNOME的承认及支持产生了广泛的影响,其开发团队亦参与到 GNOME相关技术的开发研究中来在2000年9月,Sun公司宜布成立一个可访间实验室( Accessability Lab),帮助增强 GNOME1。

GNOME的开发领域访问程序。这项工作的目的是为了提高 GNOMEI的易访问性,从Gtk+小窗口到终端的阅读用户都可实现访问,并提供多种特殊硬件设备的支持

文档。这是 GNOME的一项十分巨大的工作,包括用户文档(如程序 Manual、用户FAQ、 GNOME介绍)和开发者文挡(如 GNOME技术自皮书、开发者指南、开发者FAQ和API文档)。同时,除了文档的撰写外,还有编和索引整理等工作。该项工作目前需要大量人员支援。

图形。 GNOME需要几种不同类别的图形,分别应用在网页、桌面、选单及特殊应用程序中。

打包。这不仅包括源代码的打包,还包括释放软件包、从CVS更新的程序源码,以及为发行和安装打包。

质量检验。为了使 GNOME尽可能地稳定、高效、低Bug,这项工作必不可少。主要进行程序扩展性测试,挑出Bug并将其报告给 GNOME错误跟踪数据库。

声音。在 GNOME的桌面事件、程序、游戏等中都需要不同类型的声音。目前, GNOME的声音系统还仅局在有限系列中,急需人手来制造出高质量、高表现力的声音

翻译。 GNOME要想被世界上更多的用户接受,本地化是待完普的工作之一、已被列入 GNOME未来发展计划。该工作量是十分巨大的一对于每一种语言,都要进行全面的翻译,包括对话框、选单、每个应用程序的按钮的字符串,以及用户手册等多种文档。现在我们在使用 Red Hat9.0附带的 GNOME时,还经常会遇到局部汉化的间题,这正说明这项工作的必要性。

用户界面。该项目简称GUP界面设计,使GNOME更易于使用和接近。

网页设计和开发。 GNOME网站是社区成员活动频繁的领域,以及外界接触 GNOME项目的窗口。因而这项工作也尤为重要。要求开发者懂得PHP、MySL、WML或其它脚本编写知识。

程序开发。主要是桌面系统中应用程序的开发。这项工作并不限定8与者一定要在既定的项日中进行选择一有能力的人究全可以重起炉灶,另辟瞩径,从而体现个人的创遗力。如果参与这方面的开发,可以有机会与其他优秀的GNOME开发者一起工作、思考,井从他们身上学习更多的经验和知识。

GNOME平台开发。该平台是一系列的库和工具,应用程序便建立在其上。

开发者工具开发。开发者本身也需要很多开发工具GUI- builder(如 Glade)、IDEs、字符处理工具( gettext)、错误跟器、内存编译工具( metro)、版本修订控制系统(CVS)、构造工具( autoconf、 automake),以及许多其它工具。另外,图片及文档作者、翻译人员也需要一系列的工具来完善和保障工作质量1。

本词条内容贡献者为:

李嘉骞 - 博士 - 同济大学