Book Reviews


X Window System Series (8 volume set)

Reviewed By Vince Guarna


Vincent A. Guarna, Jr. is the manager of the Operating Systems Tools Group at the Motorola software design center in Urbana, IL. He holds BS and MS degrees in computer science and is a part-time doctoral student at the University of Illinois. His development and research interests include user interfaces, programming environments, and parallelizing compilers.

Overview

The X Window System Series from O'Reilly and Associates is a comprehensive collection of manuals targeted at X programmers and users at all levels of experience. The series is divided into six logical subject areas:

X Window System User's Guide

For people with no prior X Window System experience, Volume 3 is an excellent introductory reference. It overviews the X Window System architecture and describes various aspects of X from the user's perspective. It includes chapters on starting the system, running X applications in a network environment, using and selecting fonts, creating and using bitmaps, using commonly available X client programs, and customizing various components of the X environment.

The descriptions in Volume 3 were lucid and thorough. Beginning with basic concepts, the author methodically takes the reader through the X Window System's functionality. In Volume 3, the author discusses differences between X11R2, X11R3, and X11R4, which should be useful for users running old versions. The most recent printing is the third edition (May, 1990), and it covers X11R4 is some detail. Most users will want this edition, because it covers the changes and additions in Release 4, and because it focuses on the popular window manager twm for its examples, rather than uwm as in previous editions. uwm is still covered in the appendices.

The X C Language Interface

For programmers doing low-level work in C, the X Window System Series offers a two-volume set devoted to the description of Xlib. The first, Volume 1, is the Xlib programming manual. This manual is a tutorial on programming with the X Window System. The introductory material describes window creation and manipulation. It follows with detailed chapters on window attributes, graphics contexts, drawing and text primitives, colors, events, input devices, and interclient communication. Although the information in Volume 1 appears to be the same as the documentation included with the distribution, the presentation is much more organized and coherent. It provides many working examples — the printed C programs have been well proofread. Volume 1 also provides a glossary.

The second, Volume 2, is the Xlib reference manual. This volume mostly contains the manual pages for the service calls X supports. This documentation is essentially the same as is delivered with the standard X release. However, Volume 2 also contains several appendices that are useful to the programmer. These include lists of data structures, color database names, symbols, macros, fonts, and error codes. These appendices provide handy references in one location that can save significant time searching through other documents.

As with the user's guide, the Xlib manual discusses differences between X11R2 and X11R3, and touches on compatibility issues with X10R4. Also, the volumes I reviewed (second edition, April 1990) were updated to reflect additions and changes for X11R4.

The X Toolkit

The X Toolkit is offered as a two-volume set organized in a manner similar to the Xlib manual. The first part, Volume 4, is called the Programming Manual. This manual contains the tutorials and examples to explain toolkits and widgets. Volume 4 discusses the X Toolkit at two levels. The first level describes the development of X applications using widgets. Volume 4 supplies example programs using the Athena widgets (supplied as part of the X Window System distribution), but these concepts are also applicable to any user interface toolkit, including Motif and Open Look.

A particularly nice feature of the example programs is that they are available online as part of the standard X distribution. This permits you to spend less time typing in the programs while going through the tutorials.

Volume 4 also contains a tutorial on creating new widgets. It presents an architectural overview of a widget and its components, and an overview of the process of creating new widgets. Creating new widgets using the X toolkit is a complex task. The explanation and guidance Volume 4 offers is much more helpful than the documentation provided with X.

The second part, Volume 5, is the Reference Manual. This contains the list of manual pages and macros for functions that are supported by the X toolkit.

XView Programming Manual

Volume 7, the XView Manual, describes the Open Look toolkit that is now included with the X distribution (Release 4). The manual is self-sufficient from the perspective of developing user interfaces with XView. It gives an overview of the X Window System and describes the object-oriented programming model used with the toolkit.

Unlike the X Toolkit and Xlib manuals, O'Reilly offers no reference manual for XView, only a programming manual. People developing applications using XView will probably also want to have Volumes 1 and 2 of the X Window Series, since Volume 7 focuses solely on the user interface components supported by the XView toolkit. It does not cover detailed aspects of the C language interface to Xlib.

X Protocol Manual

The X Protocol Reference Manual (Volume 0) is primarily designed for people working on the X server, or on applications that interact with the communication between the server and clients. Although the detailed information is beneficial from a debugging perspective, most X application programmers are not likely to need this volume.

Volume 0 is largely a summary of documentation from other sources. The manual pages and several appendices are essentially the same as the original X protocol specification supplied with the X distribution. However, significant reformatting improved the organization and readability.

The X Window System In A Nutshell

This is a new addition to the X Window Series. It is a condensation of Volumes 1 through 5 targeted at the experienced X user who wants a quick reference guide. Focusing on X11R4, the guide contains:

Information in the guide is terse and seems to be easy to use for many simple programmer queries. Also, the compact size (8½ x 6 x 1 inches) is convenient to handle. For experienced X users, this book could be a viable alternative to purchasing Volumes 1 through 5. However, newcomers to X will probably want the individual volumes for the tutorials and examples. This book definitely assumes you know what you are doing.

Summary

I consider the The X Window System Series from O'Reilly and Associates to be an indispensable set of manuals for the serious X user or programmer. The tutorials are comprehensive, the program examples are clear and correct, and the presentations are consistently complete, well-organized, and attractive.

Anyone using the X Window System can probably benefit from Volume 3. Anyone doing development of X applications will probably want Volumes 1 through 5 (and Volume 7 if XView is being used). People doing work on porting or modifying the X server will want Volume 0. Based on my experience and the experiences of others whom I have consulted, the X Window System Series is a quality set of references that are a worthwhile addition to any technical library.

X Window System Series
(8 volume set)
O'Reilly and Associates, Inc.
Series Price: $195.50,
8 volumes