Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Linux framebuffer
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Abstraction layer for Linux kernel to show graphics on the system console}} {{Multiple issues| {{primary sources|date=March 2011}} {{More citations needed|date=March 2010}} }} [[Image:KNOPPIX booting.png|thumb|[[Knoppix]] booting on the framebuffer]] The [[framebuffer]] subsystem in the [[Linux kernel]] '''fbdev''' is used to show [[computer graphics|graphics]] on a [[computer monitor]], typically on the [[system console]].<ref>[https://www.kernel.org/doc/Documentation/fb/framebuffer.txt The Frame Buffer Device, Linux Kernel Documentation]</ref> It was designed as a hardware-independent [[API]] to give [[User space and kernel space|user space]] software access to the [[framebuffer]] (the part of a computer's [[Video random-access memory|video memory]] containing a current [[Film frame|video frame]]) using only the [[Linux kernel]]'s own basic facilities and its [[device file]] system interface, avoiding the need for libraries like [[SVGALib|SVGAlib]] which effectively implemented video drivers in user space. In most applications, fbdev has been superseded by the Linux [[Direct Rendering Manager]] (DRM) subsystem, but as of 2022, several [[Device driver|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.<ref>{{Cite web | url=https://www.phoronix.com/scan.php?page=news_item&px=Linux-FBDEV-2022-Maintainer | title=Developer Steps up Wanting to Maintain Linux's FBDEV Subsystem }}</ref> ==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 (mascot)|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 [[computational overhead|overhead]] of the [[X Window System]]. Examples of the third application include Linux programs such as [[MPlayer]], [[links2]], [[NetSurf]], [[w3m]], fbff,<ref>[https://github.com/aligrudi/fbff/ fbff media player repository], [[GitHub]]</ref> fbida,<ref>[https://www.kraxel.org/blog/linux/fbida/ fbi/fbida image viewer homepage]</ref> and fim,<ref>[https://www.nongnu.org/fbi-improved/ FIM (Fbi IMproved) image viewer homepage]</ref> and libraries such as [[OpenGL Utility Toolkit|GLUT]], [[Simple DirectMedia Layer|SDL]] (version 1.2), [[GTK]], and [[Qt (software)|Qt]], which can all use the framebuffer directly.<ref>[https://github.com/caramelli/higfxback/wiki/Linux-Framebuffer HiGFXback (History of graphics backends) project with the Linux Framebuffer graphics backend], [[GitHub]]</ref> This use case is particularly popular in [[embedded system]]s. The now defunct<ref>{{Cite web |title=DirectFB Is Back To Being Dormant |url=https://www.phoronix.com/news/DirectFB-2017-Dormant |access-date=2024-01-01 |website=www.phoronix.com |language=en}}</ref> [[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.<ref>[https://github.com/8l/fbui Framebuffer UI (fbui) in-kernel Linux windowing system], [[GitHub]]</ref> ==History== Linux has had generic framebuffer support since the 2.1.109 kernel.<ref>{{Cite web |last=Buell |first=Alex |date=5 August 2010 |title=Framebuffer HOWTO |url=https://tldp.org/HOWTO/Framebuffer-HOWTO/ |url-status=dead |archive-url=https://web.archive.org/web/20231210091651/https://tldp.org/HOWTO/Framebuffer-HOWTO/ |archive-date=10 December 2023 |website=tldp.org |via=Internet Archive}}</ref> It was originally implemented to allow the kernel to emulate a text console on systems such as the [[Mac (computer)|Apple Macintosh]] that do not have a [[Text mode|text-mode display]], and was later expanded to the [[IBM PC compatible]] platform. ==See also== {{Portal|Free and open-source software}} * [[Direct Rendering Infrastructure]] * [[Kernel mode setting]] ==References== {{Reflist}} ==External links== * {{SourceForge|linux-fbdev}} * [https://www.xfree86.org/4.3.0/fbdev.4.html XFree86 doc] {{Linux kernel}} [[Category:Free software programmed in C]] [[Category:Free system software]] [[Category:Interfaces of the Linux kernel]] [[Category:Linux APIs|framebuffer]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Linux kernel
(
edit
)
Template:Multiple issues
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:SourceForge
(
edit
)