FrameBuffer UI

Framebuffer UI (FBUI) is an in-kernel windowing system for Linux (kernel version 2.6.9 only, currently outdated) that sits on top of the framebuffer subsystem. Unlike the X Window System, FBUI consumes very little memory: the entire subsystem is about 50 kilobytes. FBUI supports features expected of modern windowing systems, such as moveable overlapping windows, multiple windows per application, events and common drawing functions, as well as windows on every virtual console. Graphics operations are executed on a first-come, first-served basis inside the kernel, and there is no server that queues requests.
Included with FBUI is <code>libfbui</code>, which provides abstractions for windows, events, images, fonts, 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, being only 50 kilobytes, offers solid proof that a windowing system need not be several megabytes in size, as is the case with X Window System.
FBUI is primarily intended to be a 2D graphics system, although it does include a triangle-fill routine.
Benefits
Benefits to putting a windowing system inside the kernel include:
* It prevents the windowing system (GUI) from becoming bloatware because kernel resources are supposed to be limited.
* It simplifies the interface to the graphics subsystem for applications to a small number of ioctl calls, whereas under X it involves pipes and/or shared memory.
* In-kernel graphics can be used for a non-passive graphical startup, to alleviate the awkward switch from text mode to graphics mode under Linux.
* In-kernel graphics could permit moving the current Linux console code out of the kernel.
* FBUI could in future provide access to the whole graphics-card memory, which normally cannot be accessed from userspace.
Limitations
FBUI currently does not support:
* The concept of nested windows
* Unlimited event queues
* Kernels other than 2.6.9
Regarding that last point: After 2.6.9, bugs appeared in the frame buffer device (fbdev) that prevented the use of FBUI. The 2.6.23 frame buffer device layer or virtual terminal also have significant problems.
 
< Prev   Next >