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的频繁交互和数据传递。效率大大提高。
到目前为止,我还没有完完全全搞清楚这两个架构的原理。只能说记录一下这两天的发现。
x11是一个很古老的系统,有了几十年的历史,一开始设计之初,是受限于个人电脑的弱小,所以讲所有渲染相关的计算都放在服务端,所谓的X Server. 所有的客户端可以试运行在本地的,也可以试运行在网络上的,称之为客户端XClient. X Server和XClient通信的手段就是X Protocol. 所有的客户端接收到鼠标,键盘等等事件,都要通知Server,然后Server经过计算,通知Driver进行描画。这在当时是唯一可行的方式,但是在现在看来却过时了。因为客户端也有很强大的渲染能力。
所以Wayland诞生了。Wayland的原理是,所有的渲染都发生在客户端,客户端接收到输入事件之后,自行计算需要渲染的区域,然后再内存中开辟一段(可以是共享内存,也可以是显存,取决于实际硬件),然后将绘制好的图像放入buffer中,然后通知Wayland的Server,称之为 Compositor,Compositor会监听所有client的请求,然后做一件很简单的工作,就是把Client绘制好的图片合成一下,然后发送到渲染器渲染就行了。这样就大大减少了Client和Server的频繁交互和数据传递。效率大大提高。
相关文章推荐
- 信息化项目与工程项目的区别一点感悟
- 面向过程与面向对象的本质区别-对面向过程与面向对象的一点感悟
- hibernate使用left join一点感悟
- oracle与sqlserver关于列别名的一点区别
- JAVA和C/C++的一点区别
- 奔三技术男:聊聊从华为裸辞后的一点感悟(转)
- SHELL variables default value, ${var:-DEFAULT}和${var=DEFAULT}的一点区别
- X11,GTK,QT,GNOME,KDE的区别与联系 (2)
- C++ 和 C# 变量定义的一点区别
- X11硬线接口信号 与Profisafe安全输入输出信号之间的区别与比较
- 关于淘宝直通车优化的一点感悟
- 关于码率控制的一点感悟
- 从事iOS开发工作3个多月的一点感悟
- Hibernate HQL和原生SQL查询的一点区别
- 最近面试的一点小感悟
- 常用的数据结构的一点小区别
- 一点感悟
- post 和 get 的一点区别
- JSP注释的一点区别
- jdk1.4和6.0的一点区别