[Forward Content] 【翻译】Wayland(主页)
Tofloor
poster avatar
enforcee
deepin
2023-05-19 07:38
Author

鉴于大家对Wayland比较关心,国内外的相关资料都比较少,我先尝试翻译一下官网文章,方便大家学习。只涉及一些比较基本的概念,不会特别深入。这个是第一篇,之后会再陆续翻译其他文章。敬请期待。如果大家有想更早看到的内容,可以在楼下直接提出,我会调整一下更新顺序。

本文以意译为主,主要为了让大家能看明白,不会做到每个字词在原文中都有对应。链接后面写「原文」的是我不打算翻译的内容,放上原文链接;「待翻译」的是我将来会发帖翻译,暂时放上原文链接,等翻译完成后会替换成翻译后的链接;「已翻译」的是翻译完工的链接,也会发在deepin论坛上,点进去可以阅读。

本文为Wayland项目主页的文章。原文链接:https://wayland.freedesktop.org/


Wayland

Wayland是「X11窗口系统」协议和架构的替代,目标是更易于开发、扩展和维护。

Wayland是应用程序与显示服务器对话的语言(也可以叫「协议」),来让他们能显示在屏幕上,以及接收用户的输入。Wayland的服务器(server)我们称他为「合成器」(compositor),各种应用程序作为Wayland的客户端(clients)。

我们也会把Wayland当作一种系统架构。合成器和应用程序之间并不是单纯的「服务器-客户端」结构(译注:通常简称为「C/S结构」)。X11协议中有一个统一的服务器「Xorg」,但是Wayland不是这样,每个图形桌面环境都能推出他们自己的Wayland合成器。窗口管理和用户体验就得让各个合成器来负责,而没法再依赖那些各个桌面环境中通用的组件。

Wayland架构中的一个核心部件是libwayland,他是一个进程间交互的库,来把XML语言定义的协议转换成的C语言的API(译注:虽然听起来有点玄幻,但是确实是这样的)。这个库不是Wayland的真身,他仅仅是来编码和解码Wayland中传递的消息。实现Wayland的是各种合成器和创造应用程序的基础工具(toolkit)。

Wayland不会限制使用形式和方式。一个Wayland合成器可能是一个独立的显示服务器,使用Linux内核的KMS和evdev协议的输入设备运行,或者用在其他操作系统。Wayland合成器也可能本身作为X11的客户端,或者自己就是一个Wayland应用程序(客户端),我们称为「嵌套的合成器」(nested compositor)。Wayland甚至能用在应用程序内部的通信,如同一些网页浏览器的设计。

Wayland工程还有一部分是一个Wayland合成器的参考案例,名为Weston。Weston能作为X的客户端或者直接使用Linux KMS运行,附带一些Wayland客户端的演示程序。Weston合成器是一个小巧快速的合成器,适合实用到各种嵌入式设备和移动设备中。

资料:

软件:

开发:(译注:这部分都不翻译,请看原文。)

Reply Favorite View the author
All Replies
阿尼樱奈奈
Moderator
2023-05-19 07:44
#1

感谢分享关于Wayland的知识。

Reply View the author
berners
deepin
2023-05-19 09:52
#2

😁 我也来试一下

支持Wayland的图形工具包

Qt 5

Qt 5通过QtWayland插件支持Wayland。

GTK

GTK 3及更高版本支持Wayland。

SDL

SDL 2.0.2中添加了实验性的Wayland支持,默认情况下禁用。

EFL

EFL对Wayland的移植是实验性的 - Ecore,Evas和Elementary都有针对Wayland的后端,并且都支持基于SHM和EGL方式的呈现。完整细节可以在EFL网站上找到。

(译者注:Ecore,Evas和Elementary是EFL中的三个库,它们都有后端支持Wayland。SHM和EGL是两种不同的呈现方式,这些库都支持这两种方式。)

Reply View the author
jjcui8595
Moderator
2023-05-19 14:30
#3

学习了

Reply View the author
zccrs
deepin
2023-05-19 21:16
#4

非常赞。可以收录到 wiki.deepin.org

Reply View the author
蜗牛爬坑
deepin
2023-05-19 22:37
#5

板板,辛苦了~

Reply View the author
enforcee
deepin
2023-05-20 01:36
#6

感谢 @berners 对文章的翻译。像了解更多在Wayland中图形组件运行的情况也可以参考ArchWiki

英文版:https://wiki.archlinux.org/title/Wayland#GUI_libraries

中文版:https://wiki.archlinuxcn.org/wiki/Wayland#%E5%9B%BE%E5%BD%A2%E5%BA%93

Reply View the author