-->
Previous Table of Contents Next


Chapter 21
Installing the X Windows System

by Steve Burnett

In this chapter
Understanding X Windows
Installing the XFree86 System
Configuring XFree86
Using the X Windows Resource Files

For any operating system to compete for space on today’s desktops, it must have an easy-to-use, graphical interface. The most popular systems today are Windows and Macintosh. Unlike UNIX, neither of these can easily run graphical applications across a heterogeneous network.

Linux provides the capability to run windowed applications across a heterogeneous network by incorporating the XFree86 implementation of the X11 standard of X Windows created at the Massachusetts Institute of Technology (MIT). This system is much more than a graphical interface used to run applications—it’s a powerful client/server system that allows applications to be run and shared across a network. Although XFree86 is meant to run in a networked environment, it runs fine on a single machine. You don’t need a network to run XFree86 or X Windows applications.

To install, configure, and use XFree86, you will need to know some basic Linux commands, such as how to execute programs, move through directories, and copy, view, and delete files. You may also need to modify some of the files with a text editor. If you come across a topic you don’t fully understand, this chapter tries to give you the command you need to perform the operation and then a reference to another chapter to learn, in more detail, how to perform the operation.

Like most parts of Linux, XFree86 also has a HOWTO document. The XFree86 HOWTO is maintained by Matt Welsh at mdw@sunsite.unc.edu and can be found on the World Wide Web at http://sunsite.unc.edu/LDP/.


CAUTION:  
Typically, you don’t have to worry about software damaging your hardware. Unfortunately, however, any software that deals directly with your video system—either the card or the monitor—can cause physical damage, especially if you try to use XFree86 under Linux with an unsupported video card. Make sure that you have the necessary hardware before trying to run XFree86. Reading the documentation that comes with the XFree86 system, located in the /usr/X386/lib/X11/etc directory under Linux, and the XFree86 HOWTO by Helmut Geyer in /usr/doc/faq/howto/XFree86-HOWTO is strongly suggested.

Understanding X Windows

The X Windows system is a powerful graphical operating environment that supports many applications across a network. The X Windows system was developed at MIT and can be freely distributed. The version of X Windows discussed in this chapter is X11R6. However, Linux and XFree86 are moving targets, and a newer version of X may be available on the Net.


See “Using FTP for Remote File Transfer,” p. 580

XFree86, the version used by Linux, is the X11R6 standard ported to Intel-based systems. XFree86 supports a wide range of standard PC hardware.

The X Windows system originally grew out of a cooperative effort between two sections at MIT: the section responsible for a networking program called Project Athena and a section called the Laboratory for Computer Science. Both used large quantities of UNIX workstations and soon realized they were each reinventing the wheel when it came to programming graphical user interfaces (GUIs) for UNIX workstations. To cut down on the amount of code both groups were writing, they decided to create one robust, extensible windowing system—X Windows.

In 1987, several vendors—in hopes of creating a single windowing system for UNIX workstations—formed an organization called the X Consortium to promote and standardize X Windows. Thanks to this effort, open computing became a reality. The X Consortium is composed of entities such as IBM, Digital Equipment, and MIT. This group of large organizations oversees the construction and release of new versions of X11.

XFree86 is a trademark of the XFree86 Project, Inc. The original programmers who ported X Windows to the 80386 platform decided to found the project in order to gain membership in the X Consortium. By becoming a member of the X Consortium, the XFree86 Project gained access to works in progress and could thus port the new features to XFree86 while the features were being implemented for X Windows, rather than wait until after the official release to make the port. As of January 1, 1997, the X Consortium turned over X to the Open Group.

X Windows is actually a series of pieces working together to present the user with a GUI:

  The base window system is a program providing services to the X Windows system.
  The next piece is a protocol for communicating across the network—the X Network Protocol.
  On top of the program implementing the X Network Protocol is the low-level interface, named Xlib, between the network/base system and higher-level programs. Application programs typically use functions in the Xlib instead of the lower-level functions.
  Tying these pieces all together is a window manager. The window manager is an X Windows application whose purpose is to control how windows are presented to users.

Different from most other window systems, the base window system doesn’t provide user interface objects, such as scroll bars, command buttons, or menus. The user interface items are left to the higher-layer components and the window manager.

X Windows applications include not only window managers, but also games, graphics utilities, programming tools, and many other tidbits. Just about any application that you need has either been written for or ported to X Windows. The setup and use of several of the standard X Windows applications is covered in more detail in Chapter 22, “Using X Windows.”

X Windows implements a windows manager to handle the task of creating and controlling the interface that makes up the visual portion of the X Windows system. This isn’t to be confused with the OS/2 Presentation Manager or the Microsoft Windows Program Manager. Although the window manager for X Windows does control the behavior and position of the windows, you won’t find a system setup icon or control panel for maintaining your Linux system settings.


Previous Table of Contents Next