GNOME桌面环境
2010-06-10 19:41:43 阿炯

GNOME,即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。

其目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,它是GNU计划的正式桌面。


历史
1996年 KDE 项目启动。KDE是一个自由的桌面环境,但 KDE 依赖的 Qt 当时并未使用GPL授权。出于这种考虑,两个项目在1997年8月发起:一个是作为Qt库替代品的“Harmony”,另外一个就是创建一个基于非Qt库的桌面系统,即GNOME项目。GNOME的发起者为Miguel de Icaza Amozurita和Federico Mena

GIMP Toolkit(GTK+)被选中做为Qt toolkit的替代,担当GNOME桌面的基础。GTK+使用LGPL,允许链接到此库的软件(例如GNOME的应用程序)使用任意的许可协议。GNOME计划的应用程序通常使用GPL许可证。

在GNOME变得实用和普及之后,1998年 Qt 加入GPL授权。Troll Tech在GNU GPL和QPL双重许可证下发布了unix版的Qt库。Qt加入GPL授权后,在2000年年底 Harmony 项目停止了开发,而 KDE 不再依赖非 GPL 的软件。2009年3月,Qt 4.5发布,加入了 LGPL授权作为第三选择。

GNOME桌面系统使用C语言编程,但也存在一些其它语言的绑定使得能够使用其它语言编写GNOME应用程序,例如C++,Java,Ruby,C#,Python,Perl 等等。

目标
引自GNOME网站:“GNOME计划提供了两个东西:GNOME桌面环境,一个对最终用户来说符合直觉并十分吸引人的桌面;还有GNOME开发平台,一个能使开发的应用程序与桌面其它部分集成的可扩展框架。”

GNOME桌面主张简单、好用和恰到好处,因此GNOME开发中有两点很突出:
* 易用性——设计和建立为所有人所用的桌面和应用程序,不论其技术技巧和身体残疾。
* 国际化——保证桌面和应用程序可以用于很多语言。

组织
和大多数自由软件类似,GNOME组织也很松散,其关于开发的讨论散布于众多向任何人开发的邮件列表。为了处理管理工作、施加影响以及于同对开发GNOME软件有兴趣的公司联系,2000年8月成立了GNOME基金会。基金会并不直接参与技术决策,而是协调发布和决定哪些对象应该成为GNOME的组成部分。基金会网站将其成员资格定义为:
“按照GNOME基金会章程,任何对GNOME有贡献者都可能是合格的成员。尽管很难精确定义,贡献者一般必须对GNOME计划有不小帮助。其贡献形式包括代码、文档、翻译、计划范围的资源维护或者其它对GNOME计划有意义的重要活动”。

基金会成员每年11月选举董事会,其候选人必须也是贡献者。

平台
尽管最初是GNU/Linux的桌面,GNOME已经运行在大多数类Unix系统(包括*BSD变体、AIX、IRIX、HP-UX),并被Sun Microsystems公司采纳为Solaris平台的标准桌面,取代了过时的CDE。Sun Microsystems公司也以Java Desktop System名义发布一个商业版的桌面。GNOME也移植到Cygwin使其能运行于Microsoft Windows。GNOME 还被众多LiveCD Linux发行版使用,如Gnoppix,Morphix和CDLinux。

架构
GNOME桌面由许多不同的项目构成,部分最重要的如下所示:
* Bonobo——复合文档技术
* GObject—— 用于C语言的面向对象框架
* GConf——保存应用软件设置
* GNOME VFS——虚拟档案系统
* GNOME Keyring——安全系统
* GNOME Print——GNOME软件打印文档
* GStreamer——GNOME软件的多媒体框架
* GTK+——构件工具包
* Cairo—— 复杂的2D图形库
* Human Interface Guidelines——Sun微系统公司提供的使得GNOME应用软件易于使用的研究和文档
* LibXML——为GNOME设计的XML库
* ORBit——使软件组件化的CORBAORB
* Pango——i18n文本排列和变换库
* Metacity——窗口管理器

未来发展
在GNOME之下还有很多子计划,现在它们并不是都包含在GNOME发布版里。一些基于概念的纯粹试验性质的有朝一日或许加入稳定的GNOME软件,其它还有一些正在完善以便直接加入。例如:
* GNOME存储
* D-BUS

尽管GNOME计划允许应用软件可以使用任何编程语言编写,但是作为GNOME发行版一部分的GNOME桌面是纯粹用C写成的。关于是否使用其它高级语言C#,Python和Java等正在深入讨论。这些语言都已经用于开发GNOME应用程序,但是如果用于GNOME核心应用的开发就必须在所有 GNOME安装中加入相应的虚拟机,因而就会抬高GNOME桌面对硬件的配置要求。

Freedesktop.org和 GNOME
Freedesktop.org是一项帮助在不同的X Window桌面——例如GNOME,KDE或者XFCE——之间实现互操作和共享技术的计划。尽管并非正式标准化组织,Freedesktop.org定义了X桌面的基本特征,包括程序之间的拖放、窗口管理器规范、菜单布局、最近文件列表、程序之间复制粘贴和共享的MIME类型数据库等等。遵从Freedesktop.org规范使得GNOME应用程序能够集成到其它桌面(反之亦然),并鼓励之间的竞争和合作。

主要的GNOME应用软件
GNOME主要的应用软件包括:
* AbiWord——文字处理器。
* Epiphany——网页浏览器。自从GNOME 2.4起Epiphany取代Galeon成为预设浏览器。
* Evolution——联系/安排和e-mail管理。
* Empathy——实时通讯软件。
* gedit——文本编辑器。
* GIMP——高级图像编辑器。
* Gnumeric——电子表格软件。
* Ekiga——IP电话或者电话软件。
* Inkscape—— 矢量绘图软件。
* Nautilus——文件管理器。
* Rhythmbox—— 类似Apple iTunes的音乐管理软件。
* Totem—— 媒体播放器。

版本
稳定版本
组成GNOME计划的每一部分(见架构)都有自己的版本号和发布规划,通过各模块的维护者之间的定期协调(6个月),建立一个完整的GNOME发布版本。

GDM (The GNOME Display Manager)是GNOME显示环境的管理器,并被用来替代原来的X Display Manager。与其竞争者(X3DM,KDM,WDM)不同,GDM是完全重写的,并不包含任何XDM的代码。GDM可以运行并管理本地和远程登录的X 服务器(通过XDMCP)。详情请看http://www.gnome.org/projects/gdm/。gdm仅仅是一个脚本,实际上是通过他来运行GDM二进制可执行文件。gdm-stop是用来迅速终止当前正在运行的gdm守护进程的一个脚本。gdm-restart脚本将迅速重启当前守护进程。然而gdm-safe-restart会当所有人都注销后再重启。gdmsetup是一种可以很简单的修改多数常用选项的图形化界面工具。

GDM is a replacement for XDM, the X Display Manager. Unlike its competitors (X3DM, KDM, WDM) GDM was written from scratch and does not contain any original XDM / X Consortium code. GDM runs and manages the X servers for both local and remote logins (using XDMCP). See http://www.jirka.org/gdm.html for more details. gdm is just a script that runs the actual gdm-binary executable. gdm-stop is a script that stops the current running daemon immediately, gdm-restart restarts the current daemon immediately and gdm-safe-restart restarts the current daemon after everyone has logged out. gdmsetup is a graphical tool for easily changing the most commonly used options. For full documentation see the GNOME help browser under the GNOME / System section.

里程碑
GNOME 3 正式版发布
GNOME 4 正式版发布


GNOME功能更新集(202x)


官方主页:http://www.gnome.org/

该文章最后由 阿炯 于 2023-10-11 21:48:38 更新,目前是第 6 版。