The New XFree86
Bill Ball is a best-selling author of a dozen books about Linux. He has been a fan of Linux since kernel 0.99 and is an active member of NOVALUG, the Northern Virginia Linux Users Group. He also has a BA in Journalism from Penn State University. His other books by Bill Ball include How to Use Linux, Linux for Your Laptop, Teach Yourself Linux in 24 Hours, Teach Yourself SuSE Linux in 24 Hours, Using Linux, Red Hat Linux Unleashed, Red Hat Linux 6 Unleashed, SuSE Linux Unleashed, Red Hat Linux 7 Unleashed and Practical Linux . His next book will be Linux for Your Mac.
I admit it. I barely know how to use the X window system, let alone install or configure it. So with anticipation I read the book, The New XFree86. Before now, the only book available about XFree86 was The Concise Guide to XFree86 for Linux by Aron Hsiao. With major revisions to the XFree86 software in the new 4.x version, a new book seems both welcome and necessary.
For anyone totally unfamiliar with Linux, XFree86 is an open-source implementation of X, the graphical user interface used by Linux and other flavors of UNIX. X has a look and feel much like Microsoft Windows or the Mac. But unlike Windows, which always has a GUI running, X can run as a text-mode console.
Because of the XFree86 name you might think it only supports the Intel x86 architecture, but at the www.xfree86.org web site, I noticed Alpha and PowerMac binaries, too. Platform improvements to version 4.x include Darwin/Mac OS X support, improved IA-64 and Linux MIPS support, and more Alpha platforms under Linux. Besides Linux, XFree86 is available for Darwin, FreeBSD, NetBSD, OpenBSD, Solaris and UnixWare.
XFree86 4.x represents a significant internal redesign of the X server. The big news is that 4.x has improved graphics performance (including direct rendering) and the ability to support TrueType fonts out of the box. Not all hardware drivers from 3.3.x have been ported to 4.x yet, and 4.x has some drivers not in 3.3.x. The 4.0.1 release introduced a new graphical configuration tool called xf86cfg, and a text mode interface was added to that for the 4.0.2 release. An experimental configuration tool is even built into the X server. Run the XFree86 -configure command as root. You can still use the old configuration tools, too.
The book starts with the history of X and the subtle differences among X, X11 and XFree86. The book is laid out in five sections: installation and configuration, using X with applications, more configuration, programming and miscellaneous.
The X installation and configuration section explains where to get X and how to get it running. It mentions the competing (commercial) Metro-X and Xi Accelerated-X servers, but only in passing. A little more depth might have been helpful, particularly regarding when you might choose those over XFree86.
How to use an XFree86 configuration tool (there are many) is in Chapter Three. Mr. Ball describes the older configuration tools in detail, but it is the new xf86cfg configuration tool that will intrigue 4.x readers. This tool uses the twm window manager running X in something like Windows "safe mode". Red Hat users are treated to how to use the custom Xconfigurator program that comes with that distro, as are Mandrake DrakConf, XfDrake and SuSE SaX users. Not included is the new experimental XFree86 -configure setup mentioned on the XFree86 home page.
This book promises a detailed discussion on how to use fonts, how to install new fonts and font management for improving desktop display during an X session. The font coverage is mainly in Chapter Four and seems cursory. Not mentioned in this chapter is the improved 4.x support for TrueType fonts. While reading I couldn't understand why I would need a network font server, and I had to find someone to explain to me the logic of font operations in X.
How to choose a window manager is Chapter Five. A window manager is an X program that manages X windows and the desktop background. It draws the frames and close buttons on windows, and gives X a general look and feel. The look and feel of the contents of windows is more affected by the widget toolkit, such as GTK+ or Qt. A window manager effects mostly the borders of windows or outside them. Covered are "legacy" window managers such as fvwm (Win95-ish) and twm, AfterStep (NeXT-like), Enlightenment (likes GNOME), mlvwm (Mac-ish), Window Maker (NeXT-like default for Debian), IceWM, Sawfish (formerly called Sawmill), wm2 (only 32K) and mwm (Motif). Notably absent is Blackbox. The desktops CDE, KDE and GNOME are covered here as well.
Starting X is the topic of Chapter Six. The main discussion here is display managers. A display manager is an X program that graphically manages who may log into an X session. This is for users who prefer to bypass the console prompt and go straight to X after booting. We learn here how to configure xdm, kdm (KDE) and gdm (GNOME). Using startx is also covered in detail, as well as remote client execution. You can execute an X session client/server much as you would a Telnet session, logging in graphically to a remote host. But newbies won't really get the why of this; at least I didn't at first. If you are connecting to a machine at school running X, you can remotely operate the display from home, sort of like PCAnywhere for Windows, only better.
The available xterm clients include aterm, Eterm, GNOME-terminal, konsole, kterm, kvt, rxvt, xiterm and xterm. These are covered in Chapter Seven but only briefly. Still, how much can you say about a graphical console window? Chapter Eight covers X resource strings and how to configure the windows in your X applications. In Chapter Nine we revisit the topic of X on a network, partially covered in Chapter Six. It isn't until this point that the book explains the client/server architecture of X. You really need this description in Chapter One to help understand why X is so complex.
The utilities included with X, called Base X Clients, are described in Chapter Ten. There are too many to list here. They range from utilitarian programs like startx to silly things like xeyes, a program that has two eyeballs that track where the pointer is on the screen. The author's habit of using the word client interchangeably to refer to either client/server or to X programs is confusing here. Application suites such as Applixware, WordPerfect Office and StarOffice are discussed in Chapter 11. There is also a list of KDE and GNOME programs (a.k.a. "clients") and programs to interface with the Palm PDA.
Multimedia Clients is the subject of Chapter 12, including GIMP (graphics); SANE (scanners); gPhoto (digital cameras); xmixer, kmix and gmix (sound mixers); xplaycd, kscd, mpg123 and xmms (audio players); krabber (mp3 ripper); xanim and RealPlayer (video); and capture (Sony Picturebook). GIMP and SANE are the only ones covered in any detail.
Chapter 13 is games. It has everything from traditional games like mahjonng through gory shooter games like DOOM and Quake.
With Chapter 14 we return to the topic of configuring X, particularly with input from the keyboard or mouse. We would be pretty frustrated, I think, if we hadn't figured that out by this point. This topic should be in the first section of the book. Look here for how to get your USB mouse working. Likewise, Chapter 15, "Configuring the X11 Display", belongs with the installation chapters. It explains how you can change resolution and set up the screen saver. Finally, hidden here is something on the new TrueType font support. It only takes a couple of pages to explain how to configure that. Chapter 16 explains how to configure window managers and desktop environments.
True diehards will want to read how to build and install XFree86 from source in Chapter 17. More off the deep end, Chapter 18 introduces programming in X. It gets more specific in Chapter 19, introducing widget toolkits such as Xt, Qt, GTK+ and LessTif. Chapter 20 is LessTif and OpenMotif programming. Motif, the commercial X widget toolkit, and its open-source cousin, Lesstif, are talked about early and often by Mr. Ball. However, Motif is becoming irrelevant due to the inroads being made by the more modern GTK+ and Qt toolkits. He does devote chapters to Qt and GTK+ but not until Chapters 21 and 22. Chapter 23 is a mixed bag, including Xvnc, VMware and Cygwin.
The coverage in The New XFree86 is broad but not always deep. If you are a Linux newbie looking for a gentle and engaging text, expect some difficulties. It is informative but dry. The writing style is more appropriate to systems administrators or programmers than mere users. Topics jump around too much for a leisurely read front to back, but it is good for reference. If you need the best (and only) book that covers the latest 4.x versions of XFree86, then this is it.
Gabrielle Pantera is a partner in MovieEditor.com, a technology company that creates internet and broadcast video applications. She reviews web and e-commerce manuscripts for Addison Wesley. You can reach her at Gabrielle@MovieEditor.com.