Introduction to NFB graphic adapter drivers

X server

X servers handle user events such as keystrokes, mouse movements and clicks, and render raster graphics as requested by client applications through the X protocol. Additional forms of user input and client output may be supported by the X server through ``extensions'', but all X servers must support a mouse (with at least one button), a keyboard, and a screen.

The X server consists of several layers:

OS code
Functions that depend on the operating system. The routines in this layer are publically available to the rest of the server, but are usually called only from DIX and SYS.

SYS code
Implementation-specific driver independent code. This includes:

DIX (Device Independent) code
Standard device-independent implementation of the X protocol.

DDX (Device Dependent) code
Routines that depend on the graphics hardware or input devices which the server must accommodate. These are mostly definitions for the screen and graphics context, in three main pieces:

mi (machine independent) library
Routines that implement a nearly complete DDX layer in as general a fashion as possible. It provides many common routines used in most ports of the X server. It also implements the graphics primitive routines that are called by the DIX layer. This is done by making calls to the appropriate ``pixblit'' routines in the DDX layer.

mfb (monochrome frame buffer) library
Partial implementation of the DDX layer for a directly mapped monochrome frame buffer. It contains ``pixblit'' routines optimized for monochrome (that is, black and white) screens.

cfb (color frame buffer) library
Partial implementation of the DDX layer for frame buffers with more than 1 bit per pixel. This includes grey scale screens as well as true color screens.
The SCO X Link Kit provides the OS, SYS, and DIX layers as well as a portion of the DDX layer that does not require modification in the majority of server implementations. Only a small portion of the DDX needs to be written for each supported graphics adapter.
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005