许多人在拒绝学习Linux时,最大的借口就是命令和参数多如牛毛、更难接受,特别是惯用微软操作系统的人。不过目前在Linux上已经有大幅进步的图形界面功能,使得 X Window系统成为学习时的另一种选择。本章将从X Window系统的原理谈起,进而讨论相关的设置,最后再说明KDE与GNOME这两大集成式桌面环境。
6.1 X Window系统基础
X Window系统是一种图形化的操作环境,它可以在UNIX和Linux操作系统上提供GUI(Graphical User Interface,图形用户界面)操作界面,同时它也有以下几种不同的 名称:
X
X11
X Window
X11R7
在此特别提醒一点,虽然以上名称都可用来表示X Window系统,但却不可称为Windows,因为Windows一词已被Microsoft公司注册。所以切勿使用Windows,以免侵犯该公司的注册商标。
X Window系统的起源
在X Window系统出现前,已经有许多公司在发展UNIX用户图形界面,但由于每家公司开发的规格不一,因此在兼容性方面表现不佳,这种情形直到X Window系统推出后才得以解决。
X Window系统起源于1984年的阿西娜工程(Project Athena),它是由麻省理工学院与 Digital Equipment公司合作开发的图形界面系统,因为它以斯坦福大学的W Window系统为基础,所以命名为X Window系统(因为字母X位于W之后)。
为了确保X Window系统可以持续发展,MIT于1988年成立X Consortium,它由X Window系统的主要设计者Robert W. Scheifler负责。之后由于X Window系统引起许多公司的兴趣,所以新版的X Window系统不断问世。
X Window系统组成组件
X Window系统采用主从式架构,其中主要的组成组件为X Server和X Client。前者负责驱动显示卡和各种图形的显示,同时也会驱动其他输入设备,使客户端可以通过这些输入界面与应用程序沟通。而后者指实际执行的应用程序,它会向X Server提出服务请求,以得到响应的显示画面。
除了X Server和X Client之外,在X Window系统中还包含其他组成组件,如图6-1所示。以下是这些组件的说明:
X Protocol
介于X Server和X Client间用于沟通的通信协议,因为基本的X Window系统并不提供用户界面,如按钮和菜单等组件,因此必须依靠X Protocol中的程序库来提供这类功能,否则单纯的X Window系统无法满足客户端的要求。
X Library
最底层的程序界面。它的主要功能是存取X Protocol服务,这对于图形程序编写非常重要,常见的X Library有Xlib、Motif、Qt和Gimp library等。
X Toolkit
包含在X Library中的应用程序发展工具。它提供了X Window设计时需要的基本函数,避免了程序开发时必须自行设计所有组件的不便,如滚动条和功能钮,这些组件也称为widgets。目前X Toolkit的种类有很多,较常见的有Motif Development Toolkit、OpenLook Toolkit、Gimp Tool Kit(GTK)、TCL/TK、XForms和X Toolkit(Xt)等。

图6-1 X Window系统组成组件
X Window系统的特点
总结上面的内容,可以将X Window系统的特点归纳如下:
图形化界面
X Window系统是在Linux中惟一的图形界面系统,但是可以搭配多套窗口管理程序使用,是比微软产品更具有弹性的设计。如果希望修改某些窗口管理程序的内容,可以用所附的源代码进行修改。
支持多种应用程序
目前在X Window系统中可使用的应用程序越来越多,文字处理、多媒体、图形图像、游戏软件、因特网,甚至系统管理工具,都有免费的图形化工具可供使用。这除了有助于消除用户对于文字界面的陌生感,还可以使其可能逐步取代微软产品而成为个人工作站的选择。
弹性设计
因为在X Window系统的设计中,X Server只负责基本的显示及终端的控制,而其余的部分都是由X Client处理,所以这种设计不受操作系统的限制。不同的操作系统都可以使用X Server,特别是在UNIX的多任务环境中,更能发挥其优异的特性。
主从式架构
X Window系统采用主从式架构,如图6-2所示,它将系统显示功能与应用程序分别利用X Server(X11R7)和X Client来执行。这种架构最大的好处是,执行程序(X Client)和显示结果(X Server)的主机可以是不同的两台计算机。
举例来说,如果希望在主机上使用Netscape来浏览网页,但是主机尚未安装Netscape,而网络上某个工作站上装有Netscape,此时即可连接此工作站并执行Netscape,再将结果传回本地主机。
在以上的例子中,本地主机担任X Server的角色,它只负责显示结果,而远程装有Netscape的Linux工作站则是X Client,它负责执行程序。在网络间负责传递两端信息的机制为X Protocol。
通过X Protocol这个媒介,所有的主机就都能使用此软件,而不需要在每台机器上安装相同的软件。因此建议将大型且需要高速运算的软件交由能力较强的工作站来处理,然后再利用网络进行显示执行结果。

图6-2 X Window系统主从式架构






