为什么需要 x 服务器和 linux 内核的驱动程序?

gim*_*udo 12 linux drivers wayland x-server

有人可以解释为什么需要两套驱动程序,一套在 Linux 内核中,一套在 X 中?

我知道设备驱动程序在内核中,但那些在 xserver 中的作用是什么?

Wayland 需要这样的驱动程序运行吗?

Ale*_*ios 15

在内核生命周期的大部分时间里,Linux 图形支持一直是一个变化很大的东西。最初,内核仅出于文本模式目的与图形卡通信。那时,X 使用它的驱动程序来做所有事情,所以它作为一个巨大的内核在内核之外工作。

后来,使用直接渲染基础设施 (DRI),一些加速图形功能的代码移动到内核端(称为直接渲染管理器,DRM — 与数字权限管理无关),以提供一致、抽象的 3D 加速功能接口。

目前,您没有需要有一个内核端DRM模块加载。但是,如果您没有,您的 X 会话很可能会退回到软件渲染的 3D,这比硬件 3D 慢得多且耗电。运行glxinfo将显示有关此的信息。

韦兰是一个稍微不同的故事。它位于内核和客户端应用程序之间。使用 Wayland,X 服务器是另一个客户端应用程序,将其根窗口显示为另一回事。Wayland 负责与硬件对话(X 与 Wayland 对话)。由于该项目仍在大量开发中,因此无法知道它会在哪里结束,但我的理解是它仍然需要内核支持来进行 3D 渲染。

从 Wayland 架构图中也可以明显看出:左边是现代 X 桌面的当前状态,右边是提议的 Wayland 架构。Wayland 合成器取代了 X Server 作为与硬件对话的东西,但它并没有取代内核基础设施——所以你仍然需要适当的内核支持。事实上,考虑到项目的目标,更多的东西应该转移到内核中以获得更好的抽象。Wayland 与 X 服务器一样,仍然依赖于图形硬件。

在此处输入图片说明