linux 如何在内核级别在屏幕上显示其桌面

how linux shows its desktop on screen at kernel-level

我有一些关于 linux 桌面环境的问题。

  1. linux 如何在屏幕上显示其桌面环境。我的意思是 wherehow 它的 GUI 框架生成并发送到 lcd 驱动程序?它是在内核级别吗?它与帧缓冲区(如fb0)有什么关系吗?

  2. 是否可以访问 linux 的桌面 GUI 并将其写入帧缓冲区以显示 linux 的 window 环境?

我搜索了很多但没有找到我的主要答案,即 linux 桌面环境是如何创建的,并由 linux 上的驱动程序已知的监视器显示。

感谢您的关注。

在 Linux 中没有内部桌面或类似的东西。桌面环境就像其他应用程序一样只是常规应用程序。几乎所有最低级别的桌面环境都与另一个 GUI 库交互(例如 QtGTK、...)。然后所有这些 GUI 库与称为 windowing systemdisplay server[= 的低级软件交互44=]服务器

在 Unix 系统中,最常用的 window 系统是 X window 系统(简称为 XX11)。几乎所有支持 Linux 的 GUI 库都可以与 X 一起使用。

Wayland 是另一个正在成长的 windowing 系统,应该是 X 的一个很好的替代品,因为 X window 系统太旧了并且有很多问题。但是 X 在 Linux 和其他基于 Unix 的操作系统中几乎无处不在。

所以如果你真的想知道下面发生了什么,你应该知道linux 图形堆栈。正如我所说,桌面环境只是高级应用程序。从 windowing 系统(如 X)到较低级别的库和模块(KMS、DRM 等),才是您真正要寻找的。

KMS(内核模式设置)与显示控制器一起工作,DRM(直接渲染管理器)与显卡和 GPU 一起工作。 (然而它真的不像我解释的那么简单)