Fbdev
   HOME

TheInfoList



OR:

The Linux framebuffer (fbdev) is a linux subsystem used to show
graphics Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of data, as in design and manufacture ...
on a
computer monitor A computer monitor is an output device that displays information in pictorial or textual form. A discrete monitor comprises a visual display, support electronics, power supply, housing, electrical connectors, and external user controls. The di ...
, typically on the system console. It was designed as a hardware-independent API to give user space software access to the framebuffer (the part of a computer's video memory containing a current video frame) using only the
Linux kernel The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
's own basic facilities and its device file system interface, avoiding the need for libraries like
SVGAlib SVGAlib was an open-source low-level graphics library which ran on Linux and FreeBSD and allowed programs to change video mode and display full-screen graphics, without the use of a windowing system. Some popular games like '' Quake'' and ''Doom' ...
which effectively implemented video drivers in user space. In most applications, fbdev has been superseded by the linux
Direct Rendering Manager The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations su ...
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 (mostly embedded) 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 (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 Black tie is a semi-formal wear, semi-formal Western dress code for evening events, originating in British and American conventions for clothing, attire in the 19th century. In British English, the dress code is often referred to synecdochically ...
logo at boot up. * A possible graphic output method for a
display server In computing, a windowing system (or window system) is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP (windows, icons, menus, pointer) paradigm for ...
, independent of video adapter hardware and its drivers. * Graphic programs avoiding the overhead of the X Window System. Examples of the third application include Linux programs such as MPlayer,
links2 Links is a free software text and graphical web browser with a pull-down menu system. It renders complex pages, has partial HTML 4.0 support (including tables and frames and support for multiple character sets such as UTF-8), supports color and ...
, Netsurf,
w3m w3m is a free software/ open source text-based web browser and terminal pager. It has support for tables, frames, SSL connections, color, and inline images on suitable terminals. Generally, it renders pages in a form as true to their origi ...
, fbff, fbida, and fim and libraries such as GLUT, SDL (version 1.2), GTK, and Qt, which can all use the framebuffer directly. This use case is particularly popular in embedded systems. The now defunct
DirectFB DirectFB (Direct Frame Buffer) is a software library with a small memory footprint that provides graphics acceleration, input device handling and abstraction layer, and integrated windowing system with support for translucent windows and multip ...
is another project aimed at providing a framework for hardware acceleration of the Linux framebuffer. There was also a windowing system called FramebufferUI (fbui) implemented in kernel-space that provided a basic 2D windowing experience with very little memory use.


History

Linux has generic framebuffer support since 2.1.109 kernel.Framebuffer HOWTO
/ref> 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

* Direct Rendering Infrastructure *
KMS driver The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations su ...
*
SVGAlib SVGAlib was an open-source low-level graphics library which ran on Linux and FreeBSD and allowed programs to change video mode and display full-screen graphics, without the use of a windowing system. Some popular games like '' Quake'' and ''Doom' ...
.


References


External links

*
XFree86 doc
{{Linux kernel Free software programmed in C Free system software Interfaces of the Linux kernel Linux APIs