Linux framebuffer
Image:KNOPPIX booting.png|thumb|Knoppix booting on the framebuffer
The framebuffer subsystem in the Linux kernel fbdev is used to show graphics on a computer monitor, typically on the system console.
It was designed as a hardware-independent API to give User [space and kernel space|user space] software access to the framebuffer using only the Linux kernel's own basic facilities and its device file system interface, avoiding the need for libraries like SVGAlib which effectively implemented video drivers in user space.
In most applications, fbdev has been superseded by the Linux Direct Rendering Manager subsystem, but as of 2022, several drivers provide both DRM and fbdev APIs for backwards compatibility with software that has not been updated to use the DRM system, and there are still fbdev drivers for older hardware that does not have a DRM driver.
Applications
There are three applications of the Linux framebuffer:- An implementation of text Linux console that doesn't use hardware text mode. One popular aspect of this is the ability to have console show the Tux logo at boot up.
- A graphic output method for a display server, independent of video adapter hardware and its drivers.
- Graphic programs avoiding the overhead of the X Window System.
DirectFB2 is another project aimed at providing a framework for hardware acceleration of the Linux framebuffer.
There was also a windowing system called FramebufferUI implemented in kernel space that provided a basic two-dimensional windowing experience with very little memory use.
History
Linux has had generic framebuffer support since the 2.1.109 kernel.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 the IBM PC compatible platform.