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 还不是很稳定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了