myfreax

Linux Wayland 与 X 显示服务器

显示服务器是一程序,它在计算机上管理图形化的用户接口以及在屏幕上绘制窗口,图标等图形元素以及处理用户的输入

4 min read
By myfreax
Linux Wayland 与 X 显示服务器
Linux Wayland 与 X 显示服务器

显示服务器是一程序,它在计算机上管理图形化的用户接口以及在屏幕上绘制窗口,图标等图形元素以及处理用户的输入,比如鼠标点击和用户的输入。显示器服务器与操作系统通讯确保 GUI 图形化的用户接口正确的显示。

基本上,借助显示服务器,您可以以图形方式(GUI)使用计算机。如果没有显示服务器,您将只能使用命令行界面 ( TTY )。

显示服务器是提供图形环境的框架,使您可以使用鼠标和键盘与应用程序交互。

显示服务器通过显示服务器协议(如 X11,wayland)与其客户端进行通信。显示服务器是任何图形用户界面,特别是窗口系统的关键组件。

不要将显示服务器与桌面环境混淆。桌面环境使用显示服务器渲染软件图形与交互。

Linux 显示服务器通信协议

Linux 中提供三种显示协议:X11、Wayland 和 Mir。我们将向您简要介绍这些显示服务器。

X11

X11 也称为 X 是已存在多年的传统显示服务器。它是 Linux 发行版中最常用的显示服务器。

X架构

X11 通信协议,使用 X.org Server 作为显示服务器。它从设备驱动程序接收输入事件与数据并提供给客户端使用。

显示服务器还从其客户端接收数据,处理数据并进行合成,在 Linux ,它将数据传递给三个内核组件 DRM 、 gem 或 KMS 驱动程序之一。

X.Org 服务器是一个显示服务器,它依赖于第二个程序,称为合成窗口管理器来进行合成。例如 Mutter 或 KWin。GNOME 使用 Mutter。

Wayland

根据其网站描述,Wayland 是作为 X 的更简单的替代品,更易于开发和维护。事实上,Wayland 是现代显示服务器,取代传统的 X 显示服务器。

采用 Wayland 作为显示服务器仍在进行中。Ubuntu 在 17.10 版本中尝试切换到 Wayland 作为默认显示服务器,但实验遇到许多负面反馈。

许多 GUI 应用程序及其框架都依赖于 X 服务器。这些应用程序在 Wayland 没有按预期运行。

这迫使 Ubuntu 保留 X 作为默认显示服务器。它仍然提供使用 Wayland 的选项,但它不再是默认的。即使在今天,大多数 Linux 发行版都默认使用 X 作为显示服务器。

Wayland 架构

实施 Wayland 显示服务器协议的显示服务器称为 Wayland 合成器(compositor)。与 X11 一样,Wayland 合成器负责处理其客户端的输入和输出,虽然都进行合成但与X11 还是有点不同。

一些 Wayland 合成器包括 Weston、Mutter、KWin 或 Enlightenment。

Mir

Mir 显示服务器有自己的显示服务器协议,该协议与 X11 和 Wayland 使用的协议不同。它由 Canonical开发,作为 Unity 开发的一部分,旨在成为 Ubuntu 的首选显示服务器。

截至 2017 年,它已被 Ubuntu 桌面版的 Wayland 显示服务器取代,尽管 Mir 的开发仍在物联网 IoT  继续前进。

为什么还使用 Xorg

Wayland 相对较新,与 Xorg 相比还不是很稳定。许多客户端的程序还停留在使用Xorg 作为显示服务器。

要切换 Wayland 显示服务器,开发者必须知道如何使用 Wayland 协议。因此,使用 Wayland 时许多程序可能无法运行。Ubuntu 默认切换到 Wayland 的实验证实这一点。

结论

至此,您应该对 Linux 显示服务器概念有更好的理解。教程试图不涉及太多技术细节,但无法完全避免它们。欢迎您的反馈和建议。

Related Articles