Linux framebuffer
From Wikipedia, the free encyclopedia
The Linux framebuffer (fbdev) is a graphic hardware-independent abstraction layer to show graphics on a console without relying on system-specific libraries such as SVGALib or the heavy overhead of the X Window System. Linux kernel has generic framebuffer support since 2.1.107 kernel.[1]
It was originally implemented to allow the Linux 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, where it became popular largely for the ability to show the Tux logo on boot up. More significantly, it serves as a way of displaying Unicode characters on the Linux console. Under the non-framebuffer, VGA display of the PC, comprehensive Unicode support was impossible, for VGA console fonts were limited to 256 characters.
Nowadays several Linux programs such as MPlayer, and libraries such as GGI, SDL, GTK+ and Qt Extended can use the framebuffer immediately, avoiding the overhead of an X server. This is particularly popular in embedded systems.
The Linux framebuffer has long suffered from its poor performance, but there is now a library DirectFB which provides a framework for hardware acceleration.
FBUI (FrameBuffer UI) provides in-kernel windowing system (GUI) for the framebuffer subsystem at very low cost: the entire subsystem is about 50 kilobytes in size. It permits multiple programs to share the framebuffer simultaneously; it permits overlapping moveable windows; each program may have multiple windows; and it allows windows on every virtual console. Included with FBUI is libfbui which provides abstractions for windows, events, etc., as well as quite a few sample programs such as load monitor, clock, calculator, scribble pad, image viewer, window managers, and a simple MPEG2 player. FBUI includes optimized code for the VESA framebuffer driver.
[edit] References
[edit] See also
[edit] External links
- SourceForge.net Project Page
- XFree86 doc