您的位置:首页 > 其它

X11 和Wayland的区别,一点感悟

2017-07-16 22:57 351 查看
最近一直在找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的频繁交互和数据传递。效率大大提高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: