2008年2月4日星期一

X11,FVWM,GNOME,KDE的区别

我用Linux也有一段时间了,但是在看一些老鸟们的文章时经常看到一些WM啊,桌面啊,X11啊之类的词,我模模糊糊的知道这些都是关于图形介面的名词,但是具体什么区别就不知道了。

今天抽空稍微查了一下,终于知道了他们的区别。

X Window System
X Window 系统版本 11,简称 X11,是一个运行于UNIX上的对网络透明的客户/服务器架构的图形显示系统。X并不是UNIX核心的一部分,而是在核心之上的一个应用程序。X提供一种协议,用来产生图形用户界面GUI。X不会负责很多事情,它只负责绘制(Drawing),移动窗口(Moving windows),和鼠标、键盘交互。X11 是 Unix 事实上的图形系统标准。Linux,各种 BSD 版本和多数的商用 Unix 都采用它,类似 CDE,KDE 和 GNOME 等桌面环境都运行在它之上。但是Linux使用的是一个叫XFree86的免费X11实现来提供相同的功能。不过由于一些License的问题,现在 X11的实现已经变成XOrg了。在Linux里面可以到/etc/X11/xorg.conf看到其配置文件。

Window Manager
在多数图形环境中,窗口边框的外观(标题栏,关闭按钮,等)如何显示是由系统定义的。 X11 则不是这样。在 X11 中,窗口的框架(也称为"装饰")是由一个称为窗口管理器的单独程序提供的。一般认为,窗口管理器只是另外一个客户程序;它用通常的办法启动,并与 X 服务器按同样的方法通信。有很多不同的窗口管理器供我们选择。 xwinman.org有一个详细的清单。多数常见的窗口管理器都允许用户定制称为主题的窗口外观。许多窗口管理器还提供额外的功能,象在根窗口上的弹出菜单让用户启动程序,docks,或程序启动按钮,提供一个或多个虚拟桌面。有一些WM还提供与桌面环境(A Desktop Environment)交互接口。

WM的功能可以用简单的一个词来概括--中转。比如一个程序要求X11绘制一个窗口,这个请求会首先被重定向到WM,WM来确定如何绘制窗口的标题栏(caption)和边框(Frame),在X系统中,这两个元素是由WM决定的。因此用户在窗口上拖拉和缩放也是由WM来做出反应。大多数WM还支持窗口最小化,也就是变成一个在窗口底部的图标。这项工作不属于X系统核心协议之列,因此是一些WM自己实现的。

大多数WM还处理一些其他的任务,比如显示根窗口(root window),这个就是Linux里面的桌面,和windows的桌面是topmost window同样的概念。WM还处理在根窗口上的键盘和鼠标操作,比如Alt-F4关闭窗口之类的功能。


GNOME,KDE,xFce等
这些都是桌面环境(Desktop Envrionment),他们运行于WM之上,提供更完善的桌面集成功能,更自由的定制操作系统使用方式。X上面的桌面环境与windows,Mac OS X等不同,它可以自由组合,自由更改。大多数的DE由窗口管理器(WM),文件管理器(FM),一组主题(Theme)与其他用来管理桌面的程序和库组成。所有这些组件都可以单独调换,随意组合成自己想要的桌面环境。不过现在很多Linux发行版都有一个预先固定的组合比如GNOME,KDE等(这两个已经成为最流行,最成熟的DE了)。这里有篇文章对大多数的DE做了比较。
http://en.wikipedia.org/wiki/Comparison_of_X_Window_System_desktop_environments

没有评论: