为什么X11可以访问显卡?

为什么X11可以访问显卡?

这可能有点理论化,但是……X11 到底怎么能接触到视频硬件呢?据我了解,X11是一个非特权用户模式程序。但只有内核模式软件才能访问硬件。又怎样?

(这是一个足够简单的问题,但我找不到任何文档来解释这个简单的问题。有很多关于如何设置X11,或者 X11 客户端/服务器安排如何工作,但没有太多关于它如何驱动硬件......)

基本上我有兴趣知道 X11 的工作量有多少,内核的量有多少,以及两者在哪里相遇。

答案1

在最简单的场景中,X 服务器的所谓 DDX(设备相关 X)部分将识别您的视频驱动程序并使用 ioctl 调用来初始化它,配置视频适配器并(通常)获取帧缓冲区地址。然后帧缓冲区将用于渲染。这里是对该过程的更详细的描述。

如果某些应用程序决定使用 XV 或 GLX,事情会变得更加复杂,但最终所有硬件级渲染都将由您的视频适配器驱动程序完成,并且 X 服务器永远不会尝试直接访问硬件。

相关内容