You could argue that one of the most important and fastest-moving parts of the Linux landscape right now is the graphical user interface. Under Linux, GUI means the X Window System, and that in turn means XFree86 for the vast majority of Linux users.
In XFree86 for Linux, author Aron Hsiao presents his material in six sections: X11R6, XFree86, and Linux; Starting and Using XFree86; Configuring the XFree86 Runtime; Integrated Linux Environments; Multiuser and Networked X; and Appendices. The Appendices include sample configuration files for the fvwm, fvwm2, and twm window managers; listings of fonts; and a short treatment of framebuffer support, a relatively recent addition to XFree86.
The first section contains a concise overview of X and the XFree86 Project, explaining its basic client/ server architecture and hinting at what that means for X users. Those already familiar with this background information can easily skip those few pages and plunge directly into the author’s detailed treatment of XFree86′s components and packaging.
If you’ve been using XFree86 for a while, you may be tempted to skip some of this material. That would be a mistake, as the author provides a good overview of what it takes to configure and tune an XFree86 installation, including the obligatory march through XF86Config.
The Starting and Using XFree86 section covers the nuts and bolts of X and some of its programs, such as xsetroot,xfontsel, and xdpyinfo. One minor criticism here is that the book presents almost no screen shots or examples of output from these commands. A little eye candy would have gone a long way here.
The Meat of the Matter
In the third section, Hsiao presents enough detail about configuring XFree to make just this roughly 100-page section worth the price of the entire book. He covers configuration of fvwm, fvwm2, and twm; palette issues; using PostScript and TrueType fonts; the boundless mystery that is X resources; and more. The examples and techniques in this section are well-presented, and they reasonably represent tasks and issues that users will encounter in the real world.
Integrated Linux Environments contains information on the KDE and GNOME windowing environments, plus an overview of the window-manager-versus-environment issues, but it’s one of the weaker parts of the book. KDE and GNOME will be of interest to nearly anyone reading this book, but they’re complex topics. Hsiao was forced to choose between cutting their coverage short and providing an extensive treatment, which would have been out of place.
The final section deals with multiuser and networking issues, and details how to run X clients and servers that are on different systems. Hsiao also covers security issues in this context, and some real-world compatibility issues, such as how well different X11 releases peacefully coexist. But here again the treatment is somewhat thin.
Unlike many books on the shelves today, this one doesn’t try to present a mountain of data that turns every reader into a prospector seeking info-nuggets. Taken on its own terms, the book is clearly a success. Anyone who wants to learn how XFree86 works will find Hsiao’s book to be a painless way to build a solid foundation.