尽管在Linux平台下,Cairo、Pango的发挥依然是基于X Window的,但X Window充其量仅仅是一个“backend”而已,并不是少它不行。同理,跨平台的GTK+、Qt也只是视X为其中所支持的后端之一,假如哪天X真的 不在了,更换一个新后端,当前的GNOME、KDE也能完整的跑起来。 再提另外一个比较典型的关于“X曾经做的,但现已不做”的例子,便是“模式设置(mode-setting)”,说通俗点,就是“分辨率的设置”,但后面会说明不仅仅如此。 大家都知道,Linux只是一个内核,它只有控制台,通过Shell来进行交互,而控制台默认是80×24(单位:字符)的,要进入分辨率1024×768或更高的图形模式,就需要X进行一次“模式设置”,设置正确的分辨率等等。 尽管后来Linux也支持了各种用户层(user-space)的模式设置,让终端也支持标准的分辨率,但是X的模式设置与此是不相干的,所以一两 年前,在Linux的启动过程中,从终端进入图形界面时,屏幕会“闪”一下,这时便在进行“模式设置”——这里就一定要用“模式设置”这个术语了,因为即 使终端是1024的,进入X图形也是1024的,模式的变更还是要进行。 后来呢,嗯,2009年初期,KMS(内核模式设置)终于出现了!!!很少关心桌面图形的Linux内核,在当时引入了“内核级”的模式设置,也就 是说,在内核载入完毕、显示驱动初始化后很短的时间内,即设置好标准的分辨率和色深,通过在X层做相应的更改,从此X的初始化就可以省去“模式设置”这一 过程了!也就是从Fedora 10开始,Linux的启动非常平滑、漂亮,没有任何闪烁了。现在的Ubuntu 10.10也一样,KMS的应用已经相当成熟。 X从此又少了一样图形任务……“X泪奔~你们都不要我了。” 可以说,这20多年来,X从“什么都做”已经到了“做的越来越少”。绝大多数的开发者开发图形应用程序,已经可以完全无视X的存在了,X现在更像是一个中间人的角色。那么,X这个中间人会不会有一天,完全被其他事物所取代呢? 没错!它便是下篇要介绍的:Wayland!!! |