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

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

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

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

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

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

重要的是不要将显示服务器与桌面环境混淆。桌面环境(Gnome、KDE、Xfce、MATE等)使用显示服务器。

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

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

X窗口系统

X窗口系统,通常仅被称为X,是旧的。它最初起源于1984年,是包括Linux在内的大多数类UNIX操作系统的默认窗口系统。

X.组织

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

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

如果这不是显而易见的,那么在X11的设计中就隐含了应用程序和显示器不必在同一台计算机上。当X被开发出来时,人们普遍认为X服务器将在工作站上运行,用户将在处理能力更强的远程计算机上运行应用程序。

X11

X11是一种网络协议。它描述了如何在客户端(应用程序)和显示器(服务器)之间交换消息。这些消息通常包含基本的绘图命令,如“绘制方框”、“在此位置写入这些字符”、“单击鼠标左键”等。

但X11已经过时了,它仍然是一堆位于30多年未大修的协议之上的黑客。X服务器协议的大部分功能不再使用。

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

Wayland,下一代显示服务器

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

Wayland是作为一个自由开源的社区驱动项目开发的,旨在用一个现代、安全、更简单的窗口系统取代X Window系统(也称为X11或Xorg)。

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

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

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

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

Wayland在安全方面也很出色。使用X11,可以通过允许任何程序存在于后台并读取X11区域中打开的其他窗口所发生的事情来进行所谓的“密钥记录”。

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

结论

然而,X Window系统与Wayland相比仍有许多优势。尽管Wayland消除了Xorg的大部分设计缺陷,但它也有问题。尽管Wayland项目已经启动了十多年,但情况并非100%稳定。

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

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

大鱼的头像

这个人很懒,什么都没有留下~

延伸阅读:

Windows 记事本终于获得自动更正和拼写检查功能

在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...

大鱼的头像
大鱼
2024 年 7 月 9 日
Ubuntu 的 apt 和 apt-get 命令有什么区别?

在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...

大鱼的头像
大鱼
2024 年 6 月 26 日
Ubuntu远程桌面:如何设置和连接

远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...

大鱼的头像
大鱼
2024 年 5 月 7 日
苹果公司在“放开”iPad活动上宣布的4款产品(以及你错过了什么)

利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...

大鱼的头像
大鱼
2024 年 5 月 19 日
将照片从iPhone传输到iPhone的8种快速方法

已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...

大鱼的头像
大鱼
2024 年 5 月 19 日