韦兰是什么? Linux 发行版以及您应该使用它们吗?

Wayland 是一种显示服务器协议。 它指定显示服务器和客户端之间的通信。 由于其安全性、高效性和灵活性,它被开发作为 X-Window 系统的替代品。 它是用 C 编程语言编写的。

Wayland 不是一个可以下载或安装的应用程序。 它是一个可以在环境中实现的协议。 我们稍后会讨论该机制。 首先,我们来回顾一下它的历史。

韦兰的故事

Red Hat 开发者 Kristian Høgsberg 早在 2008 年就启动了 Wayland 项目。然而,正式版本出现在 2010 年左右 Linux 图形已切换到更简单的系统。 它也成为 freedesktop.org 的一部分。

在早期版本中,Wayland 没有网络可见性。 2011 年,Høgsberg 尝试为 Wayland 实现网络透明度,但失败了。 他最近在 2013 年使用代理 Wayland 服务器进行了实验。

红帽公司的 Adam Jackson 计划为 Wayland 做计划 Pixel-类似于虚拟网络计算的抓取系统。 最终,在 2017 年 8 月,GNOME 成功实现了在 Wayland 下运行的 VNC 服务器。

一个有趣的事实。 韦兰来自美国马萨诸塞州的同名小镇。

韦兰如何运作?

在了解 Wayland 的工作原理之前,您应该首先了解 X11 的工作原理以获得更好的上下文。

X 基于客户端-服务器模型,其中中央 X 显示服务器与硬件、X 客户端和合成器进行通信。 假设您想打开一扇窗户。 当应用程序打开时,X 服务器开始与合成器通信。 它们来回移动,直到合成器获得有关窗口的所有必要信息。 然后它将信息发送到 X 服务器并绘制窗口。

X 服务器现在与应用程序通信,让其知道窗口已准备好部署。 最后,应用程序可以在创建的窗口中显示内容。 这个漫长的过程可能会导致延误和拖延。

Wayland 采用略有不同且简化的模型。 你没有服务器。 相反,合成器充当服务器。 应用程序直接与合成器通信,告诉它要打开哪个窗口。

合成器从应用程序本身获取所有必要的信息,然后指示应用程序绘制窗口以显示其内容。 这称为客户端渲染。

这里有一个问题。 如果应用程序最初是为 X 服务器构建的,则它无法与 Wayland 通信。 为了克服这个问题,我们有 XWayland。 这个向后兼容层允许 X 客户端在 Wayland 环境中运行。 因此,XWayland 为以前未获得 Wayland 支持的本机 X 应用程序提供支持。

威兰有什么好处?

现在您应该清楚创建 Wayland 的目标了。 Wayland 解决了 X11 存在的许多问题。 其优点包括:

  • 输入延迟要少得多。 只要你点击某个东西,它就会出现在你的面前。 这使得调整窗口大小等图形任务看起来更加流畅。
  • 更好的性能。 由于整个观看过程需要的步骤较少,因此性能比X11更好。
  • 更精简、更优化的代码库。 由于 Wayland 比 Wayland 现代得多,因此其新的代码库和架构更易于维护和开发。

所有这些优点可能会吸引您从现在开始使用 Wayland。 但重要的是要记住,Xorg 在市场上更加成熟,已经存在了三十多年。 许多图形密集型应用程序(例如视频游戏)在 Xorg 上运行得更好。 像 Nvidia 这样的公司只正式支持 Xorg。 许多开发人员仍在为 Xorg 套件创建应用程序和扩展。

在冒险之前你需要考虑所有这些。

哪个 Linux 发行版默认使用 Wayland?

最近,许多发行版已开始采用 Wayland 作为默认版本。

  • Fedora 自 2016 年 11 月版本 25 起,Wayland 就接管了 GNOME 桌面。 Fedora 版本 34 的 KDE 桌面在 2021 年采用 Wayland 作为默认桌面。
  • 红帽企业 Linux 自 2019 年版本 8 起成为 Wayland 的标准配置。
  • Debian 从 2019 年版本 10 开始我就选择了 Wayland。
  • 曼扎罗侏儒 自 2020 年版本 20.2(Nibia)起,Wayland 就随同而来。
  • Ubuntu Linux 首次随 Wayland 发布于 17.10 版本(Artful Aardvark)。 由于一些问题,XORG 在 18.04 LTS 中恢复为默认值。 自出版以来 Ubuntu 04/21,Wayland再次被默认。
  • 斯莱克软件 Linux 自 2020 年版本 15 起随 Wayland 一起提供。

至于桌面环境,GNOME、KDE ​​Plasma 5 和 Enlightenment 正在迁移到 Wayland。

GNOME 3.20 是第一个包含完整 Wayland 会话的版本。 随着时间的推移,每个版本的支持都得到了改善。

KDE Plasma 在 4.11 版本中首次尝试使用 Wayland。 5.4 版本提供了完整的 Wayland 支持。

Enlightenment e20 于 2015 年获得 Wayland 的全面支持

您如何知道您是否在使用 Wayland?

您可以快速检查您使用的是X还是Wayland。 打开终端并输入以下命令:

echo $XDG_SESSION_TYPE

从上面的截图可以看出,系统使用的是X11。 如果上述命令不适合您,您还可以尝试以下命令:

loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Type --value

我们得到相同的输出。 但是,如果您使用 Wayland 系统,您应该会看到以下输出:

显示 Wayland 的 XDG 会话类型

对于第二个命令:

使用 Wayland 的 Loginctl 显示 XDG 会话类型

两个输出都向我们表明该系统使用 Wayland。

如何在 X11 和 Wayland 之间切换?

使用上面提供的命令,您应该首先知道您正在使用哪个显示服务器。 如果您使用 X11,您可以切换到 Wayland,反之亦然。 这个过程非常简单。

如果您将 GNOME 作为桌面环境运行,则可以选择在登录屏幕上在两者之间切换。 您可以重新启动系统或注销以查看登录屏幕。 然后点击屏幕右下角的齿轮图标。 您应该会看到几个选项可供选择。

侏儒登录屏幕GNOME 登录屏幕

在我们的例子中,我们使用的系统默认使用 Wayland。 所以 侏儒 所选选项包含它们。 要切换到 X11,我们必须选择以下选项 Xorg 上的 GNOME 经典 或者 Xorg 上的 GNOME 可能性。

最后的想法

现在你已经清楚什么是 Wayland 了。 您还了解了它的简要历史和创建的原因。 我们总结了 Xorg 和 Wayland 背后的机制,向您展示一些比较。 您想留在 Xorg 还是 Wayland 由您决定。 我们建议的最佳选择是坚持使用系统的默认设置,除非您遇到图形问题。 在这种情况下,您可以切换到非标准版本。