1.2 不一样的图形操作
几乎所有Linux的新用户都会认为Linux的图形界面是相当地绚丽又多彩。因为这毕竟是一种全新的体验,那种超脱Windows俗套的快感就会油然而生。对于刚刚翻开这本书的人来说,如果对Linux是抱有这样认识的,那就太棒了,因为咱们又多了一个洗脑的对象了:P。此时此刻,真正的亲密接触就要开始啦……
1.2.1 没有图形的图形
虽然Linux的图形界面美轮美奂,但是有一个秘密却不得不告诉你:Linux本身是没有图形界面的。不管你信还是不信,事实就是这个样子。这么说的原因并不是因为Linux只是一个内核,其实所有类UNIX操作系统本身都没有图形用户界面。
那为什么我们能通过图形用户界面来使用Linux或者其他类UNIX操作系统呢?原因是有一个软件提供了这样的功能。是不是觉得很怪异?如果你有使用DOS和Windows 3.2 的经验,就一点都不奇怪了。因为那个时候Windows 3.2实际上就是一个DOS上的软件。而且我们所熟知的图形化操作系统Windows,直到Windows 95开始才能算得上是真正意义的操作系统。Linux上提供这个功能的软件以前是XFree86,现在是xorg(官方写法是X.Org,为了方便通常写作xorg)。虽然这两个软件名字上差别有些大,但实际上是一个软件的不同分支。1992~2004年间就只有XFree86,且跟Linux内核一样,以GPL许可证发行。但是2004年就发生了变化,XFree86的开发商XFree86? Project公司改变了许可证。这引起了GNU社区的极大不满,于是从XFree86 4.4 RC2衍生出了xorg。目前几乎所有开源的类Unix操作系统使用的都是xorg,让XFree86? Project抱着它的XFree86自己慢慢过吧:)
可能有些人会觉得奇怪。因为只听过有人在争论到底是KDE好还是GNOME好,并没有听说有xorg这东西,而且还有人说Unix的窗口系统是X提供的。那么X和xorg是什么关系呢?KDE、GNOME跟它们又是什么关系呢?嗯,这些的确是很好的问题,接下来就解答一下。
首先,X不是什么具体的软件,它是一种协议,跟我们平常所耳熟能详的那些什么HTTP协议、SOAP协议等是一样的。而xorg则是实现X协议的服务器软件,这跟实现HTTP协议的Apache是相同的概念。大家都知道Apache是可以通过HTTP协议来提供Web服务的,那么xorg通过X协议来提供什么服务呢?答案是图形用户界面服务。Apache的客户端请求Apache得到的结果是HTML内容,而xorg的客户端请求xorg的结果则是向屏幕上画图。它们之间还有一个很大的不同就是Apache只能被动地接受客户端请求,而xorg还需要主动将当前键盘按键和鼠标位置等信息通知给客户端。所以,Linux上的那些拥有图形用户界面的软件实际上都是xorg的客户端,它们利用X协议让xorg在屏幕上画出窗口或通过xorg获得键盘和鼠标事件。当然,为了运行这些软件也就需要一个前提,xorg这个服务,也就是通常所说的X服务器,必须是启动的。现代大多数Linux发行版的默认安装都是自动支持图形用户界面的,也就是说它们会在系统启动之后自动执行xorg。
可能有些人会意识到,如果系统中只有xorg是不可能有任何图形界面供大家使用的,至少还需要有个X客户端程序。而且这个X客户端程序还有一个专有名称——窗口管理器,英文叫做Window Manager,简称WM。WM也不是一个具体的软件,而是一类软件。诸如KDE、GNOME这些就是包括各自的窗口管理器,也有一些单独的窗口管理器,如FVWM、Openbox、IceWM等。它们控制窗口外观、位置和提供用户去操作这些窗口程序的方法。所以不同的窗口管理器会有不同的使用习惯。如果你当前使用的Linux系统没有配置成默认使用图形用户界面的话,可以使用命令:
$ startx
来启动xorg和默认的WM。对于Cent OS 6.4来说,默认的WM应该是GNOME的Metacity窗口管理器(KDE的是KWin),而且默认情况下是使用图形用户界面的。
对于那些默认使用图形用户界面的Linux系统,还有一个十分重要的X客户端需要启动,就是显示管理器,英文叫做Display Manager,简称DM。这个是做什么的呢?它是专门负责图形界面的用户登录问题的。也就是说,系统启动之后第一个要启动的X客户端程序就应该是DM,而且没有人能关闭掉它。(你能猜到为什么要这样吗?)DM也是一类软件,具体的应该是XDM、KDM或GDM等。
好了,有关Linux图形用户界面的介绍到这里就差不多了,更深入的内容我们留在后面吧。现在我们要谈论另外一个话题,就是Linux怎么会把它的图形界面设计得这么乱!
Comments