Linux framebuffer

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Knoppix booting on the framebuffer

The Linux framebuffer (fbdev) is a graphic hardware-independent abstraction layer to show graphics on a computer monitor, typically on the console.[1] The word framebuffer means a part of video memory containing a current video frame, and the Linux framebuffer means “access method to the framebuffer under the Linux kernel”, without relying on system-specific libraries such as SVGALib or another user space software.


There are three applications of the Linux framebuffer.

  • An implementation of text Linux console that doesn't use hardware text mode (useful when that mode is unavailable, or to overcome its restrictions on glyph size, number of code points etc.). One popular aspect of this is the ability to have console show the Tux logo at boot up.
  • A possible graphic output method for a display server, independent of video adapter hardware and its drivers.
  • Graphic programs avoiding the heavy overhead of the X Window System.

The last item includes several Linux programs such as MPlayer, links2, Netsurf, fbida and libraries such as GGI, SDL, GTK+ and Qt Extended can use the framebuffer directly. This is particularly popular in embedded systems.

There is now a library DirectFB which provides a framework for hardware acceleration of the Linux framebuffer.

There was also an in-kernel windowing system called FramebufferUI (fbui) that provides a basic 2D windowing experience with very little memory use.[2]


Linux has generic framebuffer support since 2.1.109 kernel.[3] It was originally implemented to allow the kernel to emulate a text console on systems such as the Apple Macintosh that do not have a text-mode display, and was later expanded to Linux's originally supported IBM PC compatible platform.

See also[edit]


  1. ^ The Frame Buffer Device, Linux Kernel Documentation
  2. ^ Copy of Framebuffer UI (fbui) in-kernel Linux windowing system on Internet Archive.
  3. ^ Framebuffer HOWTO

External links[edit]