------------------------------------------------------------------------------------------
简介 X Window系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统。最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X Window系统通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X Window系统为基础建构成的。
由于X只是工具包及架构规范,本身并无实际参与运作的物理,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的物理,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X Org最为普遍且最受欢迎。X Org所用的协议版本,X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.5(简称:X11R7.5),而此项目由X Org基金会所领导,且是以MIT授权和相似的授权许可的自由软件。
------------------------------------------------------------------------------------------
X Window的历史 由于改进工作持续进行,新的版本(version)不断产生(当软件和前一版不相容时,新的版本便产生了)。在1985年。制定了任何人只要付版权费便可使用X的授权许可。以下为一些最近的记事:
第10版
1985年底。直到此时,在MIT以外的人和组织,才开始对X有实质的贡献。
第一套商业化的X产品DEC于1986年1月推出 VAXstation-II/GPX。
第10版第3次发行:1986年 2月。从此时起,X开始流传于世,人们把它移植到许多新的系统上。
第10版第4次发行:1986年11月。
1987年 1月在MIT举办第一次X技术会议。
在1986年,第10版X无法满足所有的需求已非常明显。MIT 和 DEC便从事于完整协议(protocal)的重新设计。这就是X第11版(这就是所谓的X11)。
第11版
第 1次发行:1987年 9月。
X协会成立:MIT X协会成立的目的是为了研究发展及控制标准。
第二次X技术会议:1988年 1月。
第11版第 2次发行:1988年 3月。
第11版第 3次发行:1988年10月。
-------------------------------------------------------------------------------------------
X-Window、GNOME和KDE之间的关系
至于GNOME、KDE和X-Window之间的关系,可以简单地认为GNOME和KDE是并列关系,如图5-1所示,它们都是基于X-Window的桌面环境,通过X-Window其才能运行。
有人说GNOME或KDE仅是一个桌面管理器而已,笔者认为这样称呼或定义是不恰当的,这不仅仅是因为它们比桌面管理器要复杂和强大很多,更在于它大多支持其他桌面管理器,以及包含完整的应用环境以及开发工具。以GNOME为例,它除了可以搭配多种桌面管理器之外,还集成了丰富的应用,以及强大完备的开发工具和环境。
所以说,GNOME和KDE是基于X-Window经过不同组织进行整合之后的桌面环境。至于GNOME和KDE的区别,下面就来介绍一下GNOME和KDE的主要区别。
遵循的协议不同
KDE项目是2006年由德国自由程序员发起的,采用了挪威奇趣(Troll Tech)公司的Qt图形界面库作为基础开发平台,C++是其主要开发语言。KDE项目发展很快,1999年KDE 1.1.2发行以后,基本成为Linux“事实”上的桌面标准。然而,由于KDE项目使用Qt库,其遵循的软件版权协议QPL不是真正的自由软件协议,所以这在开源软件界引发了一个很大的非议,如以纯自由软件构成的Linux发行版Debian就拒绝使用KDE。
当然,最终用户并不关心软件许可的问题,对他们来说易用性和强大的功能才是硬道理,所以KDE还是得到了广泛的应用。为了与KDE相抗衡,世界最大的自由软件组织GNU(自由软件基金会)发起了GNOME桌面环境项目。GNOME采取了完全松散的自由软件开发模式,整个项目由一系列独立的软件项目组成,这种松散的开发模式使得GNOME项目进展缓慢。所以1999年推出的GNOME 1.0与KDE 1.1.2相比在各个方面都相差很多,直到2000年推出GNOME 1.2后才有了很大的进步。然而与即将推出的KDE 2.0相比,GNOME在许多方面还非常不完善,如没有一个统一的办公套件,没有类似KDE下Konqueror一样强大的、集文件管理器和网络浏览器等功能于一身的文件管理程序。更为麻烦的是,GNOME还缺乏成熟的电子邮件、个人信息助理等实用程序,而且与KDE相比,GNOME的各个程序之间的集成度、操作及风格还不够统一和完善,不同程序之间的风格及操作差别都很大。当时的一切似乎都对KDE有利而对GNOME不利。所以当时很多人都在担心GNOME会半路夭折。
与KDE不同,GNOME采用了符合GPL自由软件协议的GDK、GTK作为其底层开发平台,也就是说GNOME是真正意义上的GPL自由软件,商业公司无须支付任何费用就可以自由使用它。可以说,这是商业公司选择GNOME而不选KDE的首要因素。当然,仅仅因为这个原因还不足以令人满意,要想成为名副其实的桌面环境标准,在技术上也必须有过硬表现才行。
底层技术平台不同
为了实现各个软件之间甚至基于网络的组件复用,GNOME采用了通用的CORBA组件模型,而KDE虽然前期也采用了CORBA技术,但后来由于速度和复杂性等原因,逐渐转而采用了自己独有的KPart组件模型。这使得KDE在与其他软件的兼容性方面大打折扣。
GNOME由于坚持使用CORBA,使得它在这方面具有相当大的优势。为了更好地使用CORBA模型,GNOME在ORBit(一套轻量级的CORBA实现)基础上开发了Bonobo组件层,不仅简化了编程工作,而且实现了灵活的组件复用。GNOME甚至能够通过网络使用其他平台下的CORBA组件。这一点真正体现了GNOME名称的精髓所在。
最后,为大家拓展一下思路,虽然GNOME最初是为Linux开发的,但是它具有极其优秀的跨平台能力。目前GNOME至少可以支持Solaris、Linux等大主流UNIX和类UNIX操作系统,Sun的Solaris 10的JDS就是一个GNOME的典型应用,相信不久的将来GNOME就能够支持包括Windows在内的所有常用系统平台。
--------------------------------------------------------------------------------------------
GNOME和KDE两种图形界面有什么区别?
KDE与GNOME是很类似的:它们在本质上都是桌面环境,必须和窗口管理器配合使用,以提供类似
于MS-Windows、CDE和MacOS的用户界面。所以他们都拥有图形化的文件管理器。在文件管理器中看到
的对象可以是文件夹、子文件夹、程序、链接等。
KDE和GNOME都拥有许多的“本族程序”。“本族程序”的意思是:这些程序所用的库与桌面环境
用的库相同,并且能够由桌面环境来定义程序与外界的交互方式。这些“本族程序”涵盖的范围很广
,虽然大部分的程序看起来还很粗糙、没有特色,但这些程序使用起来还是很容易上手的。
虽然KDE和GNOME是两个不同的桌面环境,但是你会发现他们协作起来并没有太大的障碍。你可以
在GNOME中运行KDE的kppp或是Konqueror。当然,这样会丧失一小部分功能,比如无法在GNOME中实现
Konqueror的拖拽功能。另外,你必须同时在内存中加载QT和GTK+。
KDE和GNOME都是开放源代码的,他们都能很好的运行主流的Linux应用程序。
在网上人们对KDE和GNOME的评价并不能反映真实的情况。事实上,KDE比GNOME早推出一年,并且
以精致、稳定的性能将其领先地位保留至今。与当时KDE的商业版QT库相对应,GNOME一开始就是免费
的。偶倾向于GNOME是因为它是真正意义上的开放源代码软件,而不是因为它的技术而去使用它。
话虽这样说,但是对于一般用户,KDE和GNOME差不了多少。它们都提供了功能强大的图形界面,
操作起来甚至比命令行还要高效。它们并不是最好的桌面环境(相比之下MacOS要更好一些),不过它
们发展的很快,预计在以后不久就可以超过那些古老的桌面环境。
一些人声称GNOME不如KDE稳定,但实际上却恰恰相反,GNOME相对来说要健壮许多,总能顺利地
执行任务。
两个系统的用户界面差别并不明显,但是一些潜在的东西起着至关重要的作用。就拿鼠标来说吧
,在KDE所推崇的就是通过单击就可以打开程序,无论这个程序的图标是在桌面上、面板上还是在文
件管理器中。而GNOME呢,在面板中是单击,在其他地方却要双击才行。很难说哪一种方式更好。KDE
的方式似乎更统一一些,使用起来很舒服。但对于已经养成了双击习惯的人,一时忘记而不小心连击
两下,就会打开两个窗口,这是一件很恼人的事情。
KDE的文件管理器Konqueror比GNOME的nautilus更加的精密和成熟。除了进行一般的文件管理,
Konqueror还是一个网页浏览器,并且支持cookies。它采用插件式体系结构,这样就为在Konqueror
中嵌入其他应用程序提供了可能。比如说,当你点击PDF格式的文件时,Konqueror会调用 PDF阅读器
,并将其内嵌到自己的框架里,看起来浑然一体。这一点,GNOME的文件管理器就做不到。
另一方面,GNOME的窗口管理器(Sawfish)较为成熟。KDE的窗口管理器可以在缺省方式下工作
的很好,假如你修改了其中的选项,很可能会导致一些故障。比如,你在KDE中对文件进行托拽时,
会弹出一个对话框,问你是要拷贝、移动还是链接。但是这个对话框经常会消失无踪,这是因为窗口
管理器的鼠标聚焦功能出了问题。可能要试很多次才能托拽成功。在GNOME中就很少会发生这样的事
。在用户界面元素的行为管理方面,GNOME的控制面板提供了出色的控制。
理论上,KDE和GNOME与其各自的窗口管理器都是分离的,所以能够选择不同的窗口管理器而不会
丧失功能。实际上更换GNOME窗口管理器比KDE的要容易许多,只要在控制面板上更换选项就可以了。
GNOME的灵活性相矛盾的是:窗口管理器往往会提供一些与GNOME本身相依赖、甚至是相冲突的特性。
比如说,GNOME的总体外观由桌面主题来控制,但这些桌面主题由两个完全独立的控制中心来进行选
择。一个是GNOME的,一个是Sawfish或者别的什么窗口管理器的。KDE的控制面板更统一一些。
GNOME的Sawfish有许多KDE窗口管理器所缺乏的特性。比如说,Sawfish可以轻松地修改快捷键。
此外,Sawfish还能记住某一窗口的大小和位置,下一次运行时,窗口会和上一次一模一样。是不是
比每次运行都呈现缺省状态要好得多?而KDE看起来有一些呆板。
KDE所用的QT,比GNOME用的GTK+在菜单嵌套方面强得多。选择子菜单时,GNOME经常会把父菜单
丢掉,你必须小心翼翼地一层一层打开子菜单。在KDE中你可以把鼠标随意地在菜单间滑动(甚至是
对角线),而不必担心会丢掉父菜单。这是KDE引以为荣的主要特性之一。
GNOME对标准Unix网页浏览器(Netscape)的支持比较好,并支持浏览器、文件管理器、Gnome-
terminal之间的拖拽。虽然在Konqueror中也可以进行类似的操作,但是并不很彻底。GNOME还可以在
OpenOffice中大跳“拖拽舞蹈”。
说了这么多,你究竟会选择KDE还是GNOME呢?
KDE适合那些想拥有友好的用户界面,但是又不太懂如何设定细节的那些用户。若能够稳定起来
,KDE将为你提供非常好的服务,完成你的正当需求。KDE正在证明着一个开放源代码的团队是如何创
造一个界面友好的桌面环境的。
GNOME比KDE稳定的多,至少现在是这样。GNOME背后的哲学思想与Unix的哲学是一致的:每一个
程序完成它的单一任务,给用户所有他所需要的,以创造一个完美的、适合他的环境。虽然要费大量
时间周旋于众多的设置 选项,但是能创造一个更适合你的环境。GNOME的分布式对象模型更是下一代
的GUI原型。
偶在自己的机器上用了一段时间的KDE,然后换成了GNOME(当然本本上是用fvwm2)。GNOME也并
不完美,但偶认为花时间作一些调整是值得的。不过,KDE和GNOME发展地都非常快,很难说以后偶用
的是什么啊(现在偶有点心仪KDE3.1的那个透明主题了^_^但GNOME身后的APPLE工程师们给偶使用
GNOME强力的心理支持,所以~~~)。