Xorg、X11、Wayland?Linux 显示服务器和协议解释

Xorg、X11、Wayland?Linux 显示服务器和协议解释

你有没有想过 X server、Xorg、X11、Wayland 和类似的东西是做什么的?Wayland vs. Xorg,哪个更好?本指南适合您

您总是偶然发现这些术语并知道它们与图形有关,但您想了解更多信息。

Linux 中的显示服务器是什么?

显示服务器是一个程序,其主要任务是协调其客户端与操作系统的其余部分、硬件以及彼此之间的输入和输出。显示服务器通过显示服务器协议与其客户端通信。

显示服务器在任何图形用户界面中都至关重要,特别是窗口系统。图形用户界面 (GUI) 的基本组件位于图形界面和内核之间。

因此,借助显示服务器,您可以使用带有 GUI 的计算机。没有它,您将只能使用命令行界面。

不要将显示服务器与桌面环境混淆,这一点至关重要。桌面环境(Gnome、KDE、Xfce、MATE 等)使用显示服务器。

显示服务器通过显示服务器协议与其客户端通信。Linux 中提供了三种显示服务器协议。X11 和 Wayland 就是其中的两个。第三个Mir超出了本教程的范围。

X 窗口系统,Xorg,X11,解释

X 视窗系统

X Window System,通常简称为 X,已经过时了。它最初起源于 1984 年,是大多数类 UNIX 操作系统(包括 Linux)的默认窗口系统。

 

X.org

X.Org 服务器是X.Org Foundation管理的 X Window System 显示服务器的免费和开源实现它是一个应用程序,通过 X11 协议与客户端应用程序交互以在显示器上绘制内容并发送输入事件,如鼠标移动、单击和击键。

通常,会启动一个 X 服务器,它会等待客户端的应用程序连接到它。然而,Xorg 基于客户端/服务器模型,因此允许客户端在不同的机器上本地或远程运行。

如果不是很明显,那么 X11 的设计就暗示应用程序和显示器不必在同一台计算机上。在开发 X 时,普遍认为 X 服务器将运行在工作站上,而用户将在具有更强处理能力的远程计算机上运行应用程序。

X11

X11 是一种网络协议。它描述了如何在客户端(应用程序)和显示设备(服务器)之间交换消息。这些消息通常带有原始的绘图命令,如“画一个盒子”、“在这个位置写这些字符”、“鼠标左键已被点击”等。

 

但是 X11 已经过时了,它仍然是一堆 hack,位于一个 30 多年没有大修过的协议之上。X Server 协议的大部分功能都不再使用。

X11 所做的所有工作都重新委托给了各个应用程序和窗口管理器。然而,所有这些旧功能仍然存在,对所有这些应用程序造成压力,损害了性能和安全性。

Wayland,下一代显示服务器

Wayland 由 X.Org 开发人员 Kristian Hogsberg 于 2008 年作为个人项目开始。它是一种通信协议 ,用于指定显示服务器与其客户端之间的通信。

Wayland 是作为一个免费和开源社区驱动的项目开发的,它用现代、安全和更直接的窗口系统代替 X 窗口系统(也称为 X11 或 Xorg)。

在 Wayland 中,合成器是显示服务器。合成是一个窗口管理器,它为应用程序提供每个窗口的屏幕外缓冲区。窗口管理器将窗口缓冲区合成为代表屏幕的图像,并将结果写入显示内存。

 

Wayland 协议允许合成器将输入事件直接发送到客户端,并使客户端能够将损坏事件直接发送到合成器。

与 X 案例一样,当客户端接收到事件时,它会更新用户界面 (UI)。但是在 Wayland 中,渲染发生在客户端,因此客户端向合成器发送请求以指示更新的区域。

Wayland 与 X 相比的主要优势在于它从头开始。X 复杂性的主要原因之一是,多年来,它的角色发生了变化。因此,今天,X11 在很大程度上充当了客户端和窗口管理器之间“非常糟糕”的通信协议。

Wayland 在安全性方面也更胜一筹。使用 X11,可以通过允许任何程序存在于后台并读取在 X11 区域中打开的其他窗口发生的情况来执行称为“键盘记录”的操作。

Wayland 根本不会发生这种情况,因为每个程序都是独立运行的。

结论

但是,与 Wayland 相比,X Window System 仍有许多优势。尽管 Wayland 消除了 Xorg 的大部分设计缺陷,但它也存在问题。尽管 Wayland 项目已经启动了十多年,但事情并不是 100% 稳定的。

截至 2022 年,大多数适用于 Linux 的视频游戏和图形密集型应用程序仍然是为 X11 编写的。此外,许多闭源图形驱动程序(例如 NVIDIA GPU 的驱动程序)尚未完全支持 Wayland。

X 无法持久,而 Wayland 在很多方面都是一种改进。但就目前而言,绝大多数本机应用程序都是为 Xorg 编写的。在这些应用程序全部移植之前,需要维护 Xorg。与 Xorg 相比,Wayland 还不是很稳定。

posted on 2022-09-29 12:56  zxddesk  阅读(1358)  评论(0编辑  收藏  举报

导航