C&T vga - newbie quests

Peter Stuge stuge-linuxbios at cdy.org
Thu Jan 23 20:07:00 CET 2003


On Fri, Jan 24, 2003 at 01:14:53PM -0500, John van Vlaaderen wrote:
> I am writing a glossary right now and I need to know the difference 
> between:
> 
> vgabios, framebuffer and X

Wow, ok, not that this is the best place, but ok.

LinuxBIOS is currently mostly operational on what's commonly referred to as
the PC platform.  The last standardized graphics controller on this platform
was the VGA. (Video Graphics Array)  This VGA card had a BIOS that would
initialize the card when the main system BIOS traversed all expansion cards
looking for any BIOSes on them.

The VGA BIOS knows the details of how to program the graphics card.  The VGA
BIOS is closely tied to every single hardware.  Different graphics chipset -
different VGA BIOS.  Graphics chipset makers are often reluctant to release
detailed programming information for their chipsets, but a VGA BIOS is
always included with the card.  So if LinuxBIOS can make use of the VGA BIOS
it is trivial to use the computer screen e.g. for startup debugging.

'framebuffer' has a couple of different meanings.  One is the video memory
on the graphics card.  Another is the Linux drivers for accessing the said
memory.  Writing a Linux framebuffer driver requires the same detailed
programming information as for a VGA BIOS.  Framebuffer drivers aren't all
that common, it has become sort of a niche, used frequently for Set-Top-Box
and other embedded systems.  (Reference: DirectFB.)  Think of the
framebuffer drivers as a VGA BIOS in Linux for Linux, it allows Linux to
know all (or at least a lot) about the graphics controller in the system.

X is usually short for X-Windows which is the windowing system providing
core GUI functionality in almost all available Unix systems.  When open
source people say X or X server they're often talking about XFree86, an open
source X-Windows server.  The X server also needs detailed knowledge about
graphics chipsets, in order to provide and perform the desired functions in
an efficient manner.


Short summary:

The VGA BIOS, a framebuffer driver and the X server all need detailed info
on programming the graphics controller.  They differ in whom they provide
services for.

The VGA BIOS provides services mainly meant for MS-DOS and
other "classical" textmode applications like LILO and Linux itself.

The framebuffer driver provides services mainly meant for Linux and is also
a part of Linux.

The X server provides services to X clients and/or the window manager.  All
programs run in X are X clients.


Hope this clears it up.


//Peter



More information about the coreboot mailing list