当前位置: 首页 > 科技观察

Linux行话解释:Xorg、X11、Wayland,什么是显示服务器

时间:2023-03-22 16:17:17 科技观察

你有没有想过XServer、Xorg、X11、Wayland等等到底是什么东西?WaylandvsXorg,哪个更好?本指南将为您详细解释。您经常遇到这些术语并且知道它们与图形相关,但您可能想了解更多关于它们的信息,所以请继续阅读。什么是Linux中的显示服务器?显示服务器是一个程序,其主要任务是协调客户端与其他操作系统、硬件以及彼此之间的输入和输出。显示服务器通过显示服务器协议与其客户端通信。显示服务器是任何图形用户界面中的关键组件,尤其是窗口系统。它是图形用户界面(GUI)的基本组件,位于GUI和内核之间。因此,在显示服务器的帮助下,您可以使用具有GUI的计算机。没有它,您将无法使用命令行界面。不要将显示服务器与桌面环境混淆是非常重要的。桌面环境(Gnome、KDE、Xfce、MATE等)使用底层显示服务器。例如:Ubuntu21.04现在默认启用Waylandhttps://www.linuxmi.com/ubuntu-21-04-linux-5-10-lts-wayland.html显示服务器通过显示服务器协议与其客户端通信。Linux中提供了三种显示服务器协议。X11和Wayland就是其中的两个。第三个Mir超出了本文的范围。X窗口系统、X.Org、X11简介X窗口系统(通常简称为X或X11)确实很古老。它最初起源于1984年,并最终成为大多数类UNIX操作系统(包括Linux)的默认窗口系统。X.Org服务器是由X.Org基金会管理的XWindowSystem显示服务器的免费开源实现。它是一个应用程序,通过X11协议与客户端应用程序交互,在显示器上绘制内容并发送输入事件,例如鼠标移动、单击和击键。通常,会启动一个X服务器,等待客户端应用程序连接到它。Xorg基于客户端/服务器模型,因此允许客户端在本地或远程在另一台计算机上运行。在X11的设计中,应用程序和显示不必位于同一台计算机上这一点并不明显。在开发X时,X服务器通常在工作站上运行,而用户在具有更多处理能力的远程计算机上运行应用程序。X11是一种网络协议。它描述了如何在客户端(应用程序)和显示(服务器)之间交换消息。这些消息通常带有原始绘图命令,如“绘制框”、“在此位置写入这些字符”、“单击鼠标左键”等。但是X11非常古老,X服务器协议提供的大部分功能都是不再使用。X11所做的几乎所有事情都重新分配给各个应用程序和窗口管理器。但是,所有这些旧功能仍然存在,给所有这些应用程序带来压力,从而影响性能和安全性。下一代显示服务器WaylandWayland于2008年由X.Org开发人员KristianHogsberg作为个人项目启动。它是一种通信协议,指定显示服务器与其客户端之间的通信。Wayland是作为一个免费和开源社区驱动的项目开发的,旨在用现代、安全和简单的窗口系统取代X窗口系统(也称为X11或Xorg)。在Wayland中,合成器是显示服务器。Compositor是一个窗口管理器,它为应用程序提供每个窗口的离屏缓冲区。窗口管理器将窗口缓冲区合成为代表屏幕的图像,并将结果写入显示内存。Wayland协议允许合成器将输入事件直接发送给客户端,并允许客户端将损坏事件直接发送给合成器。与X情况一样,客户端在接收到事件时更新用户界面(UI)作为响应。然而,在Wayland中,渲染发生在客户端,客户端只是向合成器发送请求以指示已更新的区域。Wayland相对于X的主要优势在于它从头开始。X复杂性的主要原因之一是它的角色多年来发生了变化。结果,今天,X11在很大程度上充当了客户端和窗口管理器之间“非常糟糕”的通信协议。Wayland在安全方面也很出色。使用X11,可以通过允许任何程序存在于后台并读取在X11区域中打开的其他窗口发生的事情来执行称为“键盘记录”的操作。使用Wayland,这根本不会发生,因为每个程序都是独立工作的。总结然而,XWindowSystem与Wayland相比仍有许多优势。尽管Wayland消除了Xorg的大部分设计缺陷,但它也有自己的问题。尽管Wayland项目已经进行了十多年,但事情仍然不是100%稳定的。截至2020年,大多数Linux视频游戏和图形密集型应用程序仍然是为X11编写的。此外,许多闭源图形驱动程序(例如用于NVIDIAGPU的驱动程序)尚未提供完整的Wayland支持。X不能持久,Wayland可以在很多方面进行改进。但到目前为止,绝大多数现有的本机应用程序都是为Xorg编写的。在移植所有这些应用程序之前,需要维护Xorg。与Xorg相比,Wayland还不是很稳定。