"); //-->
最近一直在找Wayland的资料,想知道他和X11到底有什么区别,有什么改进。
到目前为止,我还没有完完全全搞清楚这两个架构的原理。只能说记录一下这两天的发现。
x11是一个很古老的系统,有了几十年的历史,一开始设计之初,是受限于个人电脑的弱小,所以讲所有渲染相关的计算都放在服务端,所谓的X Server. 所有的客户端可以试运行在本地的,也可以试运行在网络上的,称之为客户端XClient. X Server和XClient通信的手段就是X Protocol. 所有的客户端接收到鼠标,键盘等等事件,都要通知Server,然后Server经过计算,通知Driver进行描画。这在当时是唯一可行的方式,但是在现在看来却过时了。因为客户端也有很强大的渲染能力。
所以Wayland诞生了。Wayland的原理是,所有的渲染都发生在客户端,客户端接收到输入事件之后,自行计算需要渲染的区域,然后再内存中开辟一段(可以是共享内存,也可以是显存,取决于实际硬件),然后将绘制好的图像放入buffer中,然后通知Wayland的Server,称之为 Compositor,Compositor会监听所有client的请求,然后做一件很简单的工作,就是把Client绘制好的图片合成一下,然后发送到渲染器渲染就行了。这样就大大减少了Client和Server的频繁交互和数据传递。效率大大提高。
http://www.voidcn.com/article/p-pxkqyrlk-bmq.html
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。