DRM 与 FrameBuffer 的区别

前言

Linux Framebuffer 和 DRM 都是内核中用于处理显示的子系统,但它们有不同的作用和定位。

FrameBuffer

FrameBuffer(帧缓冲)是一个比较简单的、基础的内核层次的图形子系统,提供了一种直接访问和操作图形硬件的方式,在嵌入式开发中使用较多。

在 Framebuffer 中,用户空间的应用程序可以直接与帧缓冲设备进行交互,通过像素的写入和读取来控制显示器的输出。它是一个基础的图形系统,不支持硬件加速、3D 图形渲染、视频解码等高级功能。

DRM

DRM(Direct Rendering Manager) 是一个更为高级的图形子系统,它提供了硬件加速、3D 图形渲染、视频解码等高级功能,并支持多个用户空间客户端同时访问图形硬件。另外 DRM 还提供了更复杂的内存管理和 DMA(直接内存访问)机制,以便更好地管理系统中的显存。

DRM 不直接将像素数据写入帧缓冲,而是将渲染指令发送给图形硬件,由硬件完成像素渲染和输出。

总结

可以将 Framebuffer 看作是一个基本的、简单的图形子系统,用于在显示器上绘制像素。而 DRM 则是一个更高级的、功能更丰富的图形子系统,用于支持硬件加速、3D 图形渲染、视频解码等高级图形功能,并提供更复杂的内存管理和 DMA 机制。

Referene

Licensed under CC BY-NC-SA 4.0