Chapter 7. X Servers and Clients

While the heart of Red Hat Linux is the kernel, for workstation users, the X environment is the face of the operating system. The kernel provides the engine for everything that happens, managing processes and resources virtually unseen. However, the day-to-day Linux users spend the majority of their time in a graphical desktop environment, opening applications, resizing windows, and scrolling through text.

This chapter is designed to serve as an introduction to the behind-the-scenes world of XFree86 and how the X Window System — also called X — operates on your machine to provide advanced desktop functionality.

The Power of X

Linux began as a powerful, server-based operating system, excelling at efficiently processing complicated programs requiring high CPU utilization and handling requests from hundreds or thousands of clients through network connections. However, because of its open nature and stability, Linux has quickly developed into a popular GUI-based operating system for workstations, both in the home or in the workplace.

In the UNIX world, windowing environments have existed for decades, predating many of the current mainstream operating systems. UNIX machines utilize the X Window System, which uses a client-server relationship for creating a graphical user interface (GUI) for the user. An X server process is started that X client processes can connect to via a network or local connection. The server process handles the communication with the hardware, such as the video card, monitor, keyboard, and mouse. The X client exists in the userspace, issuing requests to the X server for tasks to be performed using the hardware it controls.

On Red Hat Linux systems, the XFree86 server fills the role of the X server. As an open source software project operating on a grand scope with hundreds of developers around the world, XFree86 features rapid development, a wide degree of support for various hardware devices and architectures, and the ability to run on different operating systems and platforms.

Most Red Hat Linux desktop users are unaware of the XFree86 server running on their system. They are much more concerned with the particular desktop environment in which they spend most of their time. The Red Hat Linux installation program does an excellent job of configuring your XFree86 server during the installation process, ensuring that X performs optimally when first started.

The X server performs many difficult tasks using a wide array of hardware, requiring a very detailed configuration of certain files. If some aspect of your system changes, such as the monitor or video card, XFree86 will need to be reconfigured. In addition, if you are troubleshooting a problem with XFree86 that cannot be solved using a configuration utility, such as Xconfigurator, you may need to access these configuration files.


Xconfigurator should not be used to configure XFree86 while the X server is active. If your system defaults to starting up directly into X or runlevel 5, you should switch to runlevel 3 prior to running Xconfigurator. If your system defaults to starting up in text mode, or runlevels 1 through 4, you should make sure that the X server is not running while configuring X via Xconfigurator. Failure to stop the X server before running Xconfigurator can cause hardware lockups and possibly data corruption.