-->
Previous Table of Contents Next


For the not-so-faint-of-heart, XFree86 also includes programming libraries and files for programmers who want to develop their own applications under XFree86. While the topic of programming or any of the caveats involved in creating X Windows applications is beyond the scope of this book, ample documentation is available on any number of Internet distribution sites such as prep.ai.mit.edu, and on many CD-ROM distributions to help you gain the foothold necessary to create applications for XFree86.

What Is a Client/Server System?

X Windows is a client/server system controlled by two individual pieces of software with one piece running on the client and the other running on the server. The client and server pieces of this puzzle can be on different systems or, as is the case with most personal computers, both pieces can reside on the same machine.

Client/server is one of the major buzzwords used in the computer industry today. Like most basic concepts in the industry, client/server has been overplayed and overused to the point of confusing the average computer user. In the traditional sense, a server is a machine that just provides resources—disk drive space, printers, modems, and so on—to other computers over a network. A client is the consumer of these services—in other words, a client uses the disk space, printer, or modems provided by a server.

Now that you understand what a client is and what a server is, it’s time to reverse it all. In the world of X Windows, the client/server relationship is the opposite of what you’ve come to know in the PC world. The accepted or common notion of a server is that it provides services to a client who uses them. In the most basic form, a client displays the application that’s running on the server.

Under X Windows, the server displays the application that’s running on the client. This may seem a bit confusing at first, but it’ll make sense when you become more intimate with the X Windows system.

In X Windows, a client is the resource that provides the programs and resources necessary to run an application—what in the traditional sense would be called a server. The resources reside on the client system (remember that the client and server systems can be on the same machine), whereas the application is displayed and interacted with on the server system.

The capability of an X Windows application, which is the client, to run under a server located on either the same computer or on another computer is called network transparency. Thus, an X application doesn’t care whether it runs on a local or remote machine. This capability can be used to run time-consuming tasks on another server, leaving the local client unencumbered to perform other tasks.

Output Capabilities

The base window system provides X Windows with plenty of bitmapped graphical operations. X Windows and X Windows applications use these operations to present information graphically to the users. XFree86 offers overlapping windows, immediate graphics drawings, high-resolution bitmapped graphics and images, and high-quality text. Whereas early X Windows systems were mostly monochrome-based, today X Windows and XFree86 support a wide range of color systems.

X Windows also supports the multiprocessing capabilities of UNIX; thus, XFree86 supports the multiprocessing capabilities of Linux. Each window displayed under X Windows can be a separate task running under Linux.

User Interface Capabilities

The X Consortium left out the standard rules for user interfaces. Although this seems somewhat shortsighted today, at the time very little research had been done on user interface technology, so no clear interface was considered the best. In fact, even today, unilaterally declaring one interface the best can alienate many people. The preferred look and feel presented by the user interface is a very personal decision.

The X Consortium wanted to make X Windows a standard across UNIX workstations, which is one reason X Windows is available freely on the Internet. By making X Windows freely available, it fosters interoperability, which is the cornerstone of open systems. Had the X Consortium dictated a user interface, X Windows may not have gained its current level of popularity.

Input Capabilities

Systems running X Windows typically have some form of pointing device, usually a mouse. XFree86 requires a mouse or a device, such as a trackball, that emulates a mouse. If you don’t have such a device, you can’t use the XFree86 system with Linux. X Windows converts signals from the pointing device and from the keyboard into events. X Windows then responds to these events, performing appropriate actions.


CAUTION:  
If your mouse or other hardware pointing device isn’t among those supported by Linux, you’ll have problems using XFree86 and the selection program.


See “Making Selections,” p. 107

Installing the XFree86 System

Hopefully, you installed the XFree86 system while installing the entire Linux Slackware package from the accompanying CD-ROM. The X Windows system is contained in the x and xap distribution packages. If you didn’t install the X Windows system at that time, you can use Slackware’s pkgtool program to install X Windows.


NOTE:  The Red Hat distribution also installs X as part of the installation process.

Installing the Software

Under Slackware, pkgtool is the easiest way to install XFree86, and the upcoming section “Installing the X System with pkgtool for Slackware” contains instructions for installing X using pkgtool. But if you need to install the files manually (when upgrading to a newer system, for example), you need to know that the files are located on the Slackware CD-ROM in the /slakware/x# directories: /slakware/x1 through x16.

X consists of several large archived files. The current version of XFree86 for Linux is 3.1.1, which is located on the CD-ROM. Table 21.1 shows the main files. You should log in as the superuser (root) and copy the necessary files to /usr/x386. If this directory doesn’t exist, create it with the mkdir command, as shown here:


opus#: mkdir /usr/x386

opus#: cd /usr/x386

opus#: cp -r /cdrom/slakware/x1.


Previous Table of Contents Next