欢迎,来自IP地址为:18.97.14.90 的朋友



与 Linux 相关的文章、新闻以及讨论中,经常会出现 Display Server (显示服务器)、Xorg 和 Wayland 等字眼,本文将仔细讲一讲 Linux 的显示服务器。

什么是 Display Server

Display Server 实际上是一种应用程序,可以响应客户端的输入并将相应的输出结果返回给客户端,这种请求与响应往返于不同操作系统和硬之间。得益于 Display Server,用户才可以方便的使用 GUI 界面,否则 Linux 用户将不得不停留在命令行界面。

显示服务器同客户端使用 display server 协议通信,比如 X11。同时,显示服务器是所有图形用户界面的关键组件,特别是视窗类环境时更为明显。

注意不要把显示服务器同桌面环境(desktop environment)混为一谈,因为桌面环境只是应用显示服务器的一种方式。

感觉好像明白了,但是又不是很清楚,让我们仔细的讲解一下。

Linux 的显示服务器通信协议

目前 Linux 系统常用的显示服务器通信协议有三种,分别是 X11、Wayland 和 Mir,下将对这些协议进行简要说明。

X11

X11 是最为经典的显示服务器协议,已经产生多年,是众多 Linux 发行版常用的显示服务器。

图.1 X11 架构

X11 通信协议使用 X.org Server 协议,它从设备驱动程序接收输入事件,并使它们可以显示到客户端之一。

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

X.Org 服务器是一种显示服务器,它依赖于另一个程序(合成窗口管理器)来进行合成。典型的合成管理器包括Mutter 或 KWin。而最为流行的 GNOME 就使用了Mutter。

Wayland

根据其网站介绍,Wayland 被宣传成”旨在作为X的更简单替代品,易于开发和维护”的产品。

事实也正是如此,Wayland 是一种现代的显示服务器,可以代替传统的 X 显示服务器。

但是 Wayland 的推广正在进行中,Ubuntu 尝试切换到 Wayland 作为17.10 版的默认显示服务器,但这次尝试得到了负面反馈,因为许多 GUI 应用程序及其框架都依赖于X服务器,这些应用程序在 Wayland 上无法正常工作。这迫使Ubuntu 将 X 保留为默认显示服务器。虽然仍然提供使用 Wayland 的选项,但不再是默认设置。

即使在今天,绝大多数发行版仍默认使用 X 显示服务器。

图.2 Wayland 架构

实现 Wayland 显示服务器协议的显示服务器称为 Wayland 合成器。与 X11 一样,Wayland合成器不仅负责为其客户处理输入和输出,不同之处在于,Wayland 还负责窗口合成。

Wayland 的一些合成器包括 Weston、Mutter、KWin 以及 Enlightenment。

Mir

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

截至2017年,尽管 Mir 对物联网(IoT)应用程序的开发仍在继续,但已被用于桌面版 Ubuntu 的 Wayland 显示服务器所取代。

为何还在使用 Xorg

与 Xorg 相比,Wayland 相对较新,而且还不是很稳定。为了与显示服务器进行通信,充当客户端的程序必须知道如何执行此操作,因此,使用 Wayland 时许多程序可能无法运行。

Ubuntu 的默认切换为 Wayland 实验证实了这一点。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注