An important component of the Solaris X server is the X11R6 sample server from the X Consortium. The X11R6 sample server was designed and implemented to be portable; it hides differences in the underlying hardware from client applications. The sample server handles all drawing, interfaces with device drivers to receive input, and manages off-screen memory, fonts, cursors, and colormaps.
The sample server contains the following parts, or layers:
Device-Independent Layer (DIX) – Dispatches client requests, manages the event queue, distributes events to clients, and manages visible data structures. This layer contains functions that do not depend on graphics hardware, input devices, or the host operating system.
Device-Dependent Layer (DDX) – Creates and manipulates pixmaps, clipping regions, colormaps, screens, fonts, and graphics contexts. In addition, the DDX layer collects events from input devices and relays them to the DIX layer. This layer contains routines that depend on graphics hardware and input devices the server must accommodate.
Operating System Layer (OS) – Manages client connections and connection authorization schemes, and provides routines for memory allocation and deallocation. The OS layer contains functions that rely on the host operating system.
Font Management Library – The font management library enables the server to use font files of different formats and to load fonts from the X font server. The server's font features are described in detail in Chapter 4, Font Support.
Figure 1–2 illustrates the structure of the server. Note that throughout this document, server is used interchangeably with the Solaris X server, and sample server is used interchangeably with the X Consortium's X11R6 sample server.