一、Framebuffer 概念
Framebuffer(帧缓冲)是 Linux 内核提供的一种图形显示抽象层,它将显示设备(LCD、HDMI、VGA 等)统一抽象为一个线性内存区域。应用程序只需要向这个内存区域写入像素数据,内核就会自动将这些数据显示在屏幕上。
如上一期我们下载安装了自己写的vdma驱动,然后在根目录下将会找到一个fb0的字符设备描述符,然后我们通过代码打开这个fb0设备描述符,然后声明一块内存,然后对内存进行操作就相当于对lcd显示屏幕进行操作。
查看系统 Framebuffer 设备:
ls -la /dev/fb*
cat /proc/fb # 查看已注册的 framebuffer
二、 整体架构
Framebuffer 的架构分为三层:
- 用户空间层:应用程序通过标准的文件操作接口(open、read、write、mmap)访问 /dev/fb0 设备,进行图形绘制。
- 内核空间层:Linux 内核的 Framebuffer 子系统负责管理显示设备,提供统一的抽象接口,屏蔽不同显示硬件的差异。
- 硬件层:具体的显示硬件(LCD 控制器、HDMI 接口、VGA 显卡等),通过驱动程序与内核交互。
具体如下图所示:

本文章由威三学社出品
对课程感兴趣可以私信联系