wayland相关知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/coroutines/article/details/50506054

看了一天Wayland,如果不做个笔记,估计晚上没到家就忘光了(话说越来越健忘了,不知是什么毛病)。
1. Wayland: 是一个叫Wayland compositor的Display server与其客户端之间通信的协议。一个叫做Kristian Høgsberg的大哥对X不爽搞出来的。其与X不同的地方有以下几点:
X Server Architecture
而Wayland的合成管理器是集成在内部的,如下图所示:
Wayland Architecture
- 合成方式不同: 在X中,合成这个动作是可选的;而在Wayland中,这个动作是强制的!在X中,合成器要主动获取像素数据,而这会导致延时;在Wayland中,合成器直接接收客户端的数据。
- 渲染方式不同:尽管X Server需要根据指定显示客户端已渲染过的窗口,但X Server本身是可以执行渲染动作的;而Wayland不提供任何渲染相关接口,客户端要自行渲染窗体内容,如字体或控件等等,窗口本身的渲染可以在客户端或合成器中做。
- 安全性:Wayland隔离了每个窗口的输入输出事件,X缺少这些机制。
- IPC通信:X提供了一个基本的IPC通信方法;但Wayland没有,完全由桌面环境或操作系统负责。
- 网络:X可以运行在网络上;Wayland自身不提供网络透明传输,但合成器可以实现任意的远程桌面协议。
2. OpenGL ES: 是一个针对嵌入式系统的跨平台的2D/3D API。
3. EGL: 是基于OpenGL(ES)与底层平台窗口系统之间的接口。EGL处理图形系统的上下文管理,surface与buffer之间的绑定,渲染的同步。
4. X,Wayland,OpenGL与EGL这些概念之间的关系如下图:
这里写图片描述
5. DRM: Direct Rendering Manager,是一个内核级的驱动,提供了应用程序直接访问显卡硬件的能力,其关系如下图所示:
这里写图片描述
7. KMS: Kernel Mode Setting,提供了一种可以在内核中直接设置显示分辨率方法。可以通过下图理解:
这里写图片描述
8. evdev: Linux系统中,通用的Event输入接口。负责将从设备输入的原始事件规范化,并通过/dev/input目录下的字符设备文件上报。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/coroutines/article/details/50506054

看了一天Wayland,如果不做个笔记,估计晚上没到家就忘光了(话说越来越健忘了,不知是什么毛病)。
1. Wayland: 是一个叫Wayland compositor的Display server与其客户端之间通信的协议。一个叫做Kristian Høgsberg的大哥对X不爽搞出来的。其与X不同的地方有以下几点:
X Server Architecture
而Wayland的合成管理器是集成在内部的,如下图所示:
Wayland Architecture
- 合成方式不同: 在X中,合成这个动作是可选的;而在Wayland中,这个动作是强制的!在X中,合成器要主动获取像素数据,而这会导致延时;在Wayland中,合成器直接接收客户端的数据。
- 渲染方式不同:尽管X Server需要根据指定显示客户端已渲染过的窗口,但X Server本身是可以执行渲染动作的;而Wayland不提供任何渲染相关接口,客户端要自行渲染窗体内容,如字体或控件等等,窗口本身的渲染可以在客户端或合成器中做。
- 安全性:Wayland隔离了每个窗口的输入输出事件,X缺少这些机制。
- IPC通信:X提供了一个基本的IPC通信方法;但Wayland没有,完全由桌面环境或操作系统负责。
- 网络:X可以运行在网络上;Wayland自身不提供网络透明传输,但合成器可以实现任意的远程桌面协议。
2. OpenGL ES: 是一个针对嵌入式系统的跨平台的2D/3D API。
3. EGL: 是基于OpenGL(ES)与底层平台窗口系统之间的接口。EGL处理图形系统的上下文管理,surface与buffer之间的绑定,渲染的同步。
4. X,Wayland,OpenGL与EGL这些概念之间的关系如下图:
这里写图片描述
5. DRM: Direct Rendering Manager,是一个内核级的驱动,提供了应用程序直接访问显卡硬件的能力,其关系如下图所示:
这里写图片描述
7. KMS: Kernel Mode Setting,提供了一种可以在内核中直接设置显示分辨率方法。可以通过下图理解:
这里写图片描述
8. evdev: Linux系统中,通用的Event输入接口。负责将从设备输入的原始事件规范化,并通过/dev/input目录下的字符设备文件上报。

猜你喜欢

转载自blog.csdn.net/u013804856/article/details/83894578