Linux framebuffer

08.03.2021

Linux framebuffer (фреймбуфер Линукс, fbdev от англ. Linux Frame Buffer Device) — это графический аппаратно-независимый уровень абстракций для вывода графики на монитор, обычно на консоль.

Фреймбуфер — это область видеопамяти для кратковременного хранения одного или нескольких видеокадров, а Linux framebuffer — это метод доступа к фреймбуферу через ядро Linux, не полагаясь на системно-ориентированные библиотеки, такие как SVGALib и другое программное обеспечение в пространстве пользователя.

Применение

  • Реализация текстовой Linux-консоли, когда не поддерживается аппаратный текстовый видеорежим, или для преодоления его ограничений на размер глифов, число кодовых точек и т.п. Одна популярная причина использования текстовой Linux-консоли — это возможность показывать изображения при загрузке.
  • Вывод графики для X Window System, MPlayer, библиотек GGI, SDL, Weston, GTK+, Qtopia и DirectFB: они могут использовать фреймбуфер напрямую. Это популярный подход во встраиваемых системах.

Внутри ядра существует подсистема окон под названием FramebufferUI (fbui), которая предоставляет базовую 2D-функциональность с небольшим потреблением памяти.

Доступ к фреймбуферу можно получить через файл /dev/fb0.

История

Впервые фреймбуфер появился в Linux 2.1.107. Изначально он был создан для эмуляции текстовой консоли на системах типа Apple Macintosh, у которых не было текстового видеорежима, и позже был расширен для работы на IBM PC-совместимых компьютерах.