将 Linux 与 Wayland 一起使用? 你需要知道的

Linux 桌面的各个方面一直在变化,但有些组件已经存在了几十年。 以 X Window System(主要称为 X)为例。 正在努力创建一个更快、更安全的替代品。 那个替代者是Wayland。

Wayland 已经出现很久了,一些基于 Linux 的操作系统已经将其作为默认的显示服务器协议。 如果你的还没有,那么它很快就会有机会。 这就是将 Linux 与 Wayland 结合使用的含义。

什么是韦兰?

图片来源:韦兰

Wayland 是一种协议,它根据您的操作(例如移动窗口或单击按钮)告诉程序它们应该如何出现在您的屏幕上。 从技术上讲,Wayland 本身并不是 X 服务器的替代品——Wayland 只定义了这种显示服务器应该与那些应用程序对话的方式。

Wayland 依靠称为 Wayland 合成器的第三方作为显示服务器。 示例包括 Mutter 和 KWin(分别属于 GNOME 和 KDE Plasma 桌面)。 Wayland 试图简化显示服务器通信,使未来的开发更容易和更快。

像许多未来的技术一样,Wayland 也有一些初期需要解决。 X 已经存在了很长时间,并且一直在稳步构建。 这意味着 Wayland 有很多事情要做(以及实现它的显示服务器)。 但就目前而言,有一些事情需要知道才能使测试更加顺利。

避免在 Wayland 上使用 GTK+ 2 或 Qt 4 应用程序

您日常交互的大多数 Linux 应用程序都是为以下两种图形工具包之一编写的:GTK+ 和 Qt。 这些框架充当显示服务器的客户端,要求将内容绘制到您的屏幕上。 但是,首先需要了解这些请求,而这取决于工具包。

因此,只有某些类型的程序实际上可以在 Wayland 桌面上运行。 为了 example,GTK+ 3程序也能正常运行。 那些用 Qt 5(Plasma 桌面所基于的工具包)编写的也可以。

话虽如此,如果您确实尝试打开,例如,Qt 4 应用程序,您将有相当大的机会运行它。 Wayland 通过在幕后运行 X 服务器来实现这一点,以收听它无法理解的应用程序。 但是,这可能会导致更高的内存使用率和稍低的速度。 另外,有些事情是这种方法目前无法做到的。

某些应用程序与 Wayland 不兼容

Wayland 和 X 的设计方式不同,因此某些与 X 一起使用的应用程序根本无法在 Wayland 上运行。

考虑一下 Redshift 和 f.lux 等屏幕变色应用。 这些应用程序会根据一天中的时间过滤显示器中的蓝光。 它们使用 X 扩展进行操作,例如 RandR,它为程序提供了一种要求 X 更改屏幕显示的简单方法。

虽然 Wayland 提供了在一定程度上重新创建此功能的方法,但它依赖于每个 Wayland 合成器来实际实现它。 这意味着虽然一个桌面环境可能支持 Redshift 之类的东西(例如上图的 GNOME 夜灯功能),但该功能不一定在其他地方可用。

您可能会遇到屏幕录制软件的类似问题。 作为一项安全功能,Wayland 显示服务器会阻止应用程序记录屏幕。 这并不是说在 Wayland 上根本不可能进行屏幕录制。 开发人员正在努力以不同的方式实现该功能。

合成是必须的

合成是一种有助于防止屏幕撕裂和伪影的技术。 这是通过将显示器的副本保存在内存中来完成的,通常在显卡的帮助下。 这样,即使应用程序停止响应,您的显示服务器仍然可以使用。 合成还提供窗口动画和阴影。

Wayland 旨在通过强制执行此过程比 X 更高效。 X 通过名为 Xcomposite 的扩展将合成作为可选功能。 但是由于它的实现方式,与Wayland相比,它需要更多的时间。

话虽如此,合成可能会导致一些问题。 合成会导致游戏等程序的性能略低。 在 X 中,当应用程序全屏显示时,大多数桌面都会关闭合成。 但是许多 Wayland 合成器仍然需要实现这一点。 如果您对在 Wayland 桌面上使用图形密集型程序感兴趣,请记住这一点。

Nvidia 显卡可能不适用于 Wayland

更具体地说,如果您使用的是 Nvidia 的专有图形驱动程序,Wayland 可能不适合您。 这与上面的合成问题有关。 为了使该过程正常工作,您的图形驱动程序必须以某种方式与 Wayland 合成器对话。

Intel 和 AMD 显卡没有这个问题,因为它们使用了预期的标准,称为 GBM(通用缓冲区管理)。 Nvidia 认为,他们与 Wayland 对话的方式(称为 EGL)更好,因此坚持使用这种方式。

这个问题可以通过两种方式解决:Nvidia 驱动程序实现 GBM,或者 Wayland 合成器实现 EGLStreams。 目前,英伟达似乎对追求前一种解决方案不感兴趣。

如何使用韦兰

此时,大多数 Linux 发行版都为您提供安装 Wayland 的选项,但大多数仍默认运行 X。 您可以在发行版的存储库中搜索 Wayland,从桌面注销,然后在重新登录时选择 Wayland。

Fedora 是最早抵制这一趋势的发行版之一,并且默认运行 Wayland 已有几年了。 Fedora 以使用 Linux 桌面必须提供的最新技术而闻名,同时也非常实用。 但 Fedora 并不孤单。

一些默认提供 Wayland 的发行版

  • Fedora
  • Debian
  • openSUSE 风滚草
  • 纯操作系统
  • 红帽企业 Linux
  • SUSE 企业版 Linux

为什么没有更多的发行版进行切换? 许多人正在等待更多的问题得到解决。 很多人希望使用 Nvidia 的专有图形驱动程序来获得最佳的游戏体验。 有些人想录制他们的屏幕以创建播客或在线流式传输视频。

鉴于显示服务器不是我们大多数人注意到的东西,发行版并不急于引入如此明显的问题以换取虽然真实但主要存在于幕后的好处。 而且,如果您尝试使用远程桌面修复问题,那么这就是在 Wayland 下可能会或可能不会起作用的那种东西。