快速业务通道

揭开Wayland的面纱(二):Wayland应运而生

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

话说在上篇(揭开Wayland的面纱(一):X Window的前生今世)中我介绍了一些X Window的历史及发展,还没有提到Wayland本身,不少人已经等不及了.不过,介绍这些是有必要的,毕竟要知道X Window的一些知识,才能明白为什么会有Wayland这个东西.

在本篇正式开始介绍Wayland之前,让我们先回到2008年11月4日,也就是整整两年前,我当时在中文领域第一时间报道了“Wayland”的新闻:Wayland:Linux的新X Server,在其后的一个月,又写了:Wayland最新动态.

当时这两篇文章主要是翻译Phoronix的新闻,自己也没有亲自把玩过Wayland,再加上Wayland项目还处于比较初期的阶段,对其的理 解有限.如今经过整整两年的开发,包括Linux内核在图形方面的不断的改进、GTK 图形库的不断进化,Wayland已经渐渐成熟,接近可用状态.

那么,回到上篇开头最初的那个问题:

Wayland究竟是什么?

如果在两年前,按照那篇《Wayland:Linux的新X Server》的理解,它是一个新的“X Server”,在于改善当前X Server的不足,从而取代它.现在,我们已经可以用更标准的语言来定义Wayland了,那就是:A Simple Display Server.

没错,Wayland是一个简单的“显示服务器”(Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client).也就是说,Wayland不仅仅是要完全取代X Window,它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“X Client”了,而是“Wayland Client”.

更确切的说,Wayland只是一个协议(Protocol),就像X Window当前的协议——X11一样,它只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己.Wayland依然是贯彻“提供机制,而非策略”的Unix程序.

“什么?Wayland还是Server/Client模式?”可以这么理解,但实际上与X Window的Server/Client有着本质的区别.

让我们用一张类似前文所示的图表来重新演示一下,在Wayland的框架下,窗口事件的响应是如何进行的.

在Wayland的架构图中,最显著的一些特点是:

  • 它复用了所有Linux内核的图形、输入输出技术:KMS、evdev,因此已支持的驱动可以直接拿来用;
  • Wayland没有传统的Server/Client的模式,取而代之的是:Compositor/Client,这不仅仅是换一个名称而已,后面会讲到具体区别;

还记得前文中“点击Firefox的刷新按钮”这个应用场景吧?在Wayland里,所有的流程是这样的:

    Empire CMS,phome.net
  1. 内核收到了鼠标发出的信息,经过处理后转发到了Wayland Compositor,就像之前发往X Server一样.
  2. Compositor收到消息后,立马能知道哪个窗口该收到这个消息,它就是总控制中心,它掌握窗口的层级关系、动画效果,因此它知道该坐标产生的鼠标点击信息应该发送给谁,就这样,Compositor将鼠标的点击信息发送给了Firefox.
  3. Firefox收到了消息,这时如果是在X Window下的话,Firefox会向X Server请求绘制按钮被按下的效果.然而在Wayland里,Firefox可以自行进行绘制而不需要再请求Compositor的许可!这就是传说 中的:直接渲染机制(Direct Render)!Wayland不管Client的绘制工作,整个过程变得十分简单高效!当Firefox自行完成了按钮状态的绘制后,它只需要通知 Compositor,某块区域已经被更新了.
  4. Compositor收到Firefox发来的信息的,再重新合成那块更新的那块区域,将最终桌面效果呈现给用户.这个过程主要是跟内核、显卡驱动打交道了.

整个流程是不是很自然、很简单?

结论出来了:

  1. Wayland的“直接渲染架构”彻底结束了传统X Window在渲染图形时需要不停的向Se

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号