快速业务通道

揭开Wayland的面纱(一):X Window的前生今世

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-15

今天大家可能在“Wow! Ubuntu”或其他地方看到了这篇文章:Ubuntu 决定未来将启用 Wayland X-Server.Wayland是什么呢?它是X Window?还是要取代X Window?它的优势在哪里?Linux桌面/移动会因此有什么变化?在本篇中,我将回顾历史,展望未来,通过简易的文字,来先回顾一下X Window,从而继续解答Wayland.

注:在下对X Window的理解仅限于表面,文章中会有不少技术、历史方面的错误,若有大侠指出,不甚感激!

古老的X Window和现代的桌面技术

X Window在1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略.举个最简单的例子吧:X Window提供了生成窗口(Window)的方法,但它没规定窗口要怎么呈现(map)或摆放(place),这个策略是由外部程序——窗口管理器 (Window Manager)所决定的.另外一个X Window的主要特点便是:Server/Client网络模型.不论是本地、远程的应用程序,都统一通过Server/Client模型来运作,比 如:让远程的应用程序跑在本地上.

X Window在推出之后快速演化,在1987年时候,其核心协议已经是第11版本了,简称:x11.这个版本已经将“提供机制,而非策略”这个哲学贯彻地 非常彻底,以致于核心协议基本稳定,不需要特别大的改动.于是乎,你看到了,现在是2010年,整整23年了,X Window依然是X11.

你可能会诧异,23年了,X Window的核心都没有特别大的变化,它能适应现代桌面的快速发展吗?这就要再次提到X Window的设计优势了,X Window在核心层之外提供一个扩展层,开发者可以开发相应扩展,来实现自己的扩展协议,比方说:

标准的Window都是矩形的,我如何用它来画一个圆形的窗口?X Window协议并未提供,但是通过“shape”这个扩展,X Window可以实现不规矩的窗

啊,这23年,X Window除了继续完善核心协议、驱动以外,很大程度上,都是扩展使它保持“与时俱进”,比如说:

  • 要多头显示支持,这个是由“Xinerama”扩展实现的;
  • 要有多媒体视频回放的支持,这个是由“X Video”扩展实现的;
  • OpenGL的3D支持,则是通过“GL”扩展来实现的;
  • Compiz那样的合成桌面特效是怎么弄的?没错,还需要一个新的扩展,它便是:“Composite”;
  • 甚至Keyboard的支持,都是通过“X Keyboard Extension”(也就是“XKB”)的!

X Window的核心,基本上就是在处理Server/Client、驱动之类的,而外部的那些支持,基本上全是通过“扩展”进行的.这没什么不好,X Window的结构设计精良,尽管是扩展,但它们没有任何效能上的问题.通过扩展方便地实现了一些对新技术、新事物的支持,方便维护,这再好不过了.

你看到了尽管23年过去了,基于X Window的GNOME、KDE,还能保持与同期Windows、Mac OS X竞争甚至某些方面更好,你就不得不佩服这些前辈在最初设计时定下的设计哲学是多少正确了.

虽然扩展的众多没有给X Window造成什么问题,也跟X Window的设计哲学相符,但是其Server/Client的网络构架,却一直倍受质疑,这便是:

X Window的效率问题

经常听到有人说,X Window的Server/Client结构严重影响效率,导致Linux桌面的效应速度一直不如Windows、Mac OS X.事实是不是这样呢?让我们还是透过原理来说话吧.

这张,便是当前X Window系统的架构图,稍微解释一下:

  • X Client:图形应用程序,如Firefox、Pidgin等;
  • X Server:你看不见的控制中心;
  • Compositor:合成桌面系统,如Compiz;
  • Kernel/KMS/evdev:这便是Linux Kernel,后面会提到KMS技术了,其中还有一项evdev,是管理输入设备的.

通过这些箭头,你已经可以明白一些X Window的工作机制了,不过还从一个应用场景来解释

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号