The
framebuffer subsystem in the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
fbdev is 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 the data, as in design and manufa ...
on a
computer monitor
A computer monitor is an output device that displays information in pictorial or textual form. A discrete monitor comprises a electronic visual display, visual display, support electronics, power supply, Housing (engineering), housing, electri ...
, typically on the
system console
A computer terminal is an electronic or electromechanical computer hardware, hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to ...
.
It was designed as a hardware-independent
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
to give
user space
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
software access to the
framebuffer (the part of a computer's
video memory containing a current
video frame
In filmmaking, video production, animation, and related fields, a frame is one of the many '' still images'' which compose the complete ''moving picture''. The term is derived from the historical development of film stock, in which the sequentia ...
) using only the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
's own basic facilities and its
device file
In Unix-like operating systems, a device file, device node, or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These s ...
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
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with Graphics processing unit, GPUs of modern video cards. DRM exposes an Application programming interface, API that user-space programs can use t ...
(DRM) 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
Text mode is a computer display mode in which content is internally represented on a computer screen in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of ''character cells'', ea ...
(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 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
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
.
Examples of the third application include Linux programs such as
MPlayer
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
,
links2,
NetSurf
NetSurf is an open-source web browser which uses its own layout engine. Its design goal is to be lightweight and portable. NetSurf provides features including tabbed browsing, bookmarks, and page thumbnailing.
In recent years, NetSurf has mai ...
,
w3m, fbff, fbida, and fim, and libraries such as
GLUT,
SDL (version 1.2),
GTK
GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both Free software, free and ...
, and
Qt, which can all use the framebuffer directly. This use case is particularly popular in
embedded system
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s.
The now defunct
DirectFB 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 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
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
that do not have a
text-mode display, and was later expanded to the
IBM PC compatible
An IBM PC compatible is any personal computer that is hardware- and software-compatible with the IBM Personal Computer (IBM PC) and its subsequent models. Like the original IBM PC, an IBM PC–compatible computer uses an x86-based central p ...
platform.
See also
*
Direct Rendering Infrastructure
*
Kernel mode setting
References
External links
*
XFree86 doc
{{Linux kernel
Free software programmed in C
Free system software
Interfaces of the Linux kernel
framebuffer