X图形服务器-Wayland
2012-10-29 17:27:03 阿炯

Wayland是一个简单的“显示服务器”(Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client)。也就是说,Wayland不仅仅是要完全取代X Window,而且它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“X Client”了,而是“Wayland Client”。


Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or other display servers.

Part of the Wayland project is also the Weston reference implementation of a Wayland compositor. Weston can run as an X client or under Linux KMS and ships with a few demo clients. The Weston compositor is a minimal and fast compositor and is suitable for many embedded and mobile use cases.

更确切的说,Wayland只是一个协议(Protocol),就像X Window当前的协议——X11一样,它只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己。所以Wayland依然 是贯彻“提供机制,而非策略”的Unix程序。

Wayland 作为下一代的图形服务器,目的是替代有 25 年历史的 X11 Server。Wayland 关注于近年来 Linux 在桌面领域的改善,通过将部分图像处理工作交由 Linux 内核提供的 GEM(Graphic Execution Manager)和 KMS(Kernle Mode-Setting)实现,大幅度缩减了图形服务器的体积和工作开销。

除此之外,Wayland 还提供了运用 EGL 或 GLX 的混合器 Weston ,充分利用客户端直接渲染的方式,可以有效的提高图形界面的相应速度,并且实现诸如异性窗口等原先难以达到的功能。

Wayland 的专注在带来更高性能的同时引入了一些弊端,比如尚未实现类似 X11 Server 一样的远程网络显示,过分依赖 Linux 内核导致难以移植到其他类 Unix 操作系统上,以及对于 KMS 的依赖导致短期内不会有闭源驱动厂商支持等。

在最新 Debian 10 更新内容中,Debian 用 Wayland 取代了 X11 。不过一向保守的 Debian 仍将继续提供 X11 作为替代方案。X Window 系统始于 1984 年,并于 1987 年提出了目前的 X11 。正如很多人认为的那样,X11 已经过时了,越来越多的 Linux 发行版开始转向灵活性和性能更好的 Wayland ,比如 Ubuntu 和 Fedora 。


最新版本:1.12
该版本新特性包括更好的错误处理和自我测试基础设施改进,新特性包括 xdg-shell 协议的改进,一些键盘重复改进,默认切换到 libinput 等等。Wayland 1.12还带来了其它一些重要的改进,包括Wayland核心协议文件的多处细化、改善其一致性、让包维护者们更加明了地在他们的发行版中部署下一代显示服务。XML扫描器也能够更好地支持协议头中的版本识别,从而增强了检测客户端和合成器上所使用的不同版本的协议的能力。最后,协议文档的多处空白区域也已得到了填补。其带来了实验性的libweston和libweston-desktop库、支持XDG-Shell协议(版本6)、一个指针锁定和限制API、并且移除了树莓派后端(rpi-backend)和渲染器。

最新版本:1.20
Wayland 1.20 正式版已于2021年12月9号发布,主要更新内容:
对FreeBSD的支持已经完全上游化,并被加入到持续集成系统中
自动工具构建系统已经被放弃,并用 Meson 取代
增加了一些协议:wl_surface.offset 允许客户端独立于缓冲区更新一个表面的缓冲区偏移量,wl_output.name 和 description 允许客户端识别输出,而无需依赖 xdg-output-unstable-v1
在协议定义中,事件有一个新的 "类型" 属性,现在可以被标记为析构器
修复了一些错误,包括在多线程客户端中销毁代理时的一个竞争

更多详情请查看更新公告

XWayland 23.2 已正式于2023年8月中旬发布,此版本支持 X11 客户端在 Wayland 环境中运行。主要新功能包括通过 libei 库支持模拟输入 (emulated input) 的可选支持、支持 tearing 控制协议,以及 XWayland rootful 模式现在可以使用 libdecor 调整大小。wp-tearing-control-v1 协议实际上是在需要较低延迟或最大游戏性能,而不考虑完美渲染的情况下,选择性地允许异步页面翻转出现屏幕 tearing。另外还为 BSD 带来了 DRM 平台支持,删除了许多无关/旧的 DDX 组件,修复了没有 GBM 的构建,以及许多其他修复。


项目主页:http://wayland.freedesktop.org/