当前位置:中国星空学习网首页>Linux/DOS>Linux基础>正文  
透视GNOME项目

 

Linux/自由软件项目的编写及维护方式,决定其发展离不开网络社区成员的贡献。从这个意义上而言,一个个项目事实上就像一个个开放的大家庭。它们随时向朋友敞开着大门,吸引着越来越多的参与者。社区的成员们都在为社区的发展而努力,为项目的不断成长而欣喜。那么,一个Linux项目是怎样从萌芽走向健壮的呢?它的社区是如何组织及壮大的呢?让我们从最熟悉的GNOME项目说开去。

什么是GNOME项目

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

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

GNOME桌面环境包括:

◆ GNOME桌面 applet、capplet、panel、wm interaction(sm、pager、rootmenu等)、desktop(icons,file manager);

◆ GNOME开发平台 GTK+、GNOME Widgets、Component Model、FS、imaging、SM、i18n,主要的技术是bonobo、XML、imaging(包括Gnome-Print);

◆ GNOME Office AbiWord、Gnumeric、GIMP、Dia、Eye Of GNOME(EOG)、GNOME-PIM、GNOME-DB。

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

组织形式及加入方式

GNOME是由一群志同道合者在网络上维护并协作开发的。参与到社区中的人会发现,所有人在网络上通过E-mail and IRC保持着密切联系,也许跟你进行合作的人正是一位走在技术尖端的开发者。想一想也会觉得这是一件有趣而令人兴奋的工作。这个社区和其它的自由软件社区一样,随时欢迎有志者的加入。想要加入这个社区并不困难,登录到其官方网站http://www.gnome.org,在http://developer.gnome.org/documents/joining-gnome/index.html上有项目的详尽说明和简介。在了解完项目的大致情况后,即可进行申请。

申请加入社区的第一步,就是要求申请者按照GNOME项目的类别来选择感兴趣的领域。事实上,并不只有懂得编程的人才能加入社区,GNOME项目的发展需要各方面的人才,例如图形艺术家、文件编写者、翻译(各种语言,进行本地化工作)、网页设计师、软件测试员、软件打包人员、用户界面设计人员,以及其它类别的工作人员。只要你在某方面擅长,并乐于为社区服务,社区会尽力发掘你的潜力,以便为其所用。一般而言,GNOME项目可供选择的领域有以下几个方面(GNOME的子项目):

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

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

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

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

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

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

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

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

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

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

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

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

申请者可在上述的工作类别中进行选择。每个类别都是一个独立的子项目,都有相关的负责人及维护页面。参与者根据兴趣和特长选中类别后,可以进入相关的网页,查看进一步的信息。每个项目的参与方式可能略微不同,但都需要与相关的项目负责人、联系人沟通,一般而言,很快就能收到答复。

此外,GNOME社区还专门准备了一个Todo数据库(http://www.gnome.org/todo/index.php3),列出的是目前GNOME需要进行的工作任务列表。开发者把认为重要的、自己却没有时间去完成的工作列在上面。每个项目都有详尽的描述和联系方式。参与者可以通过浏览这个数据库选择感兴趣和擅长的领域。

当然,对于一个刚刚加入的社区成员而言,可能很难立刻进入角色。在这方面,GNOME社区也考虑得十分周全,比如GNOME的Love项目(http://mail.gnome.org/mailman/listinfo/gnome-love/),就是帮助刚刚进入社区得成员找到工作任务,并及时获得帮助的一个项目组织。

此外,GNOME社区的网站上面还列出了“如何开始”、“学会开发”、“向GNOME添加应用程序”等指南。

起步及发展历程

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

萌芽

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

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

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

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

诞生

Icaza从墨西哥国立自治大学计算机科学专业物色了两名学生——Arturo Espinosa和Federico Mena,与他一同从事开发工作,同时他们也在为墨西哥Linux用户协会(Linux Users 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组织了LinuxNet网络和Linux频道的许多网友,共同参与到这个项目的开发中来。

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

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

渐渐步入正轨后,初创的几个人注册了gnome.org域名,GNOME的开发重心很快地转移到这个社区中来。同年11月,GNOME社区聚集了足够的能量,Icaza和Federico推掉了其它项目,全身心地投入到开发中来。

很快地,在同年的12月,他们与Red Hat取得合作;1998年1月,共同建立了Red Hat高级开发实验室(Red Hat Advanced Development Labs)。这是为改进GNOME而成立的第一开发梯队。

Red Hat公司的Marc和DrMike也加入进来,帮助从事相关的开发。之后不久,社区上的成员Owen、Jonathan、Dave和Federico也都陆续加入进来……

转折

◆ 受到QPL的影响

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

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

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

◆ GNOME基金会的建立

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

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

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

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

我们看到GNOME一路走来,从雏形的1.0版本,到奠定声誉的Bongo版本,再到目前十分成功的2.x版本,其社区在不断地壮大,项目性能在不断地完善,为其它Linux项目的发展树立了典范。

(责任编辑:代君利)j30B0j30B0j30B0

 

上一篇: 我与MiniGUI的不了情
下一篇: Linux必学的60个命令(一)
站内公告
栏目导航
 Windows系统
 Linux/DOS
 办公应用
 工具软件
 图形图象
 网络应用
 安全防御
 网络编程
 软件教程
 实用技术
最新文章
中国星空图片网
·人体艺术
·性感美眉
·生活自拍
·幽默搞笑
·超级帅哥
·精彩万花筒
·梦幻景色
中国星空探索网
·神秘追踪 灵异接触
·鬼故事 灵异空间 图片
·未解之谜 探索宇宙
中国星空两性网
·两性图文 我的性事 情人 成人幽默
·性爱技巧 两性测试 性爱误区
·性事花边 生育避孕 性保健 性疾病
·两性生理 文化 讨论 心理 知识
·爱人同志 非常男女 一夜情
中国星空算网命
·手机吉凶 QQ号码吉凶 周公解梦
·塔罗牌测试 狗年运程
·关公灵签 紫薇斗数 八字排盘
·测试:你的成功指数有多少
·测验你的家庭是否美满?
·面相: 面型 眼睛 耳朵 口唇
·手相:拉你一把奶油桂花手
·测试:你能成为大富翁吗?
联系方式 设为首页
中国星空旗下---中国星空学习网    Copyright 2005-2050 Year   xx.happy369.com  Networks.All rights reserved
中国星空网所有内容均来源于网络,版权属于原作者,如侵犯到您的权益,请与我们联系,我们将尽快予以删除或处理。
中国星空不承担由于内容的合法性及健康性所引起的一切争议和法律责任。
陕ICP备05011765号 联系我们 
《女人如烟》--演唱:魏佳艺