Linux 图形系统:X Window 与 Wayland 深度解析
1. 图形系统基础问题
在图形系统中,窗口(或一组窗口)属于各个独立的进程,它们会独立进行所有图形更新。当用户可以移动窗口并使它们相互重叠时,就会产生两个关键问题:一是应用程序如何知道在哪里绘制其图形;二是如何确保一个应用程序不会覆盖其他窗口的图形。
2. 主流图形系统介绍
2.1 X Window 系统
X Window 系统采用服务器 - 客户端模式,其中 X 服务器充当桌面的“内核”,负责从渲染窗口、配置显示到处理键盘和鼠标等设备输入的一切事务。X 服务器并不规定任何事物的行为或外观,而是由 X 客户端程序处理用户界面。基本的 X 客户端应用程序(如终端窗口和 Web 浏览器)会连接到 X 服务器并请求绘制窗口。X 服务器会确定窗口的放置位置和客户端图形的渲染位置,并承担将图形渲染到帧缓冲区的一定责任,同时在适当的时候将输入传递给客户端。
不过,X 服务器存在一些问题。由于它是所有事务的中介,可能会成为显著的瓶颈。此外,它包含许多不再使用的功能,并且历史悠久,可追溯到 20 世纪 80 年代。尽管如此,它具有足够的灵活性,能够适应许多新功能,从而延长了其使用寿命。
2.2 Wayland
与 X 不同,Wayland 在设计上是高度去中心化的。没有大型显示服务器为多个图形客户端管理帧缓冲区,也没有集中的图形渲染权威机构。相反,每个客户端都有自己的内存缓冲区(可视为子帧缓冲区)用于其窗口,一个名为合成器的软件会将所有客户端的缓冲区组合成适合复制到屏幕帧缓冲区的形式。由于通常有硬件支持这项任务,合成器可以非常高效。 <
超级会员免费看
订阅专栏 解锁全文
1236

被折叠的 条评论
为什么被折叠?



