Issue #13 November 2005

Five Fedora books reviewed and rated


Whether you're learning about Fedora™, or solving a problem with your Fedora system, you're likely to consult some sort of documentation. Fedora documentation comes in many forms, such as community forums, advisory articles, users' weblogs—and let's not forget Red Hat Magazine!

Like most Linux distributions, the Fedora Project has a subproject for documentation, the Fedora Documentation Project (FDP), which is a team of volunteer technical writers and editors that produces high-quality documentation for Fedora. The Fedora Installation Guide is one of the FDP's most recent projects. It will soon be followed by other new guidebooks, tentatively including a Getting Started Guide, a Desktop User Guide, a Administration Guide, and a Testing Guide. Of course I have to advertise a little for my favorite pet Fedora project, so let me invite any budding writers or keen-eyed grammarians to join us at the FDP!

Of course, this article is not about the FDP but about some of the books you might find at your favorite local or online bookstore. Over the last several years, commercial publishers have produced numerous books to guide new users and administrators through the process of installing and configuring Fedora. While online documentation has the edge in currency, many readers prefer to browse documentation using the reliable, if somewhat heavy, traditional format of paper-based books. I recently checked out five books covering Linux and Fedora to see what each had to offer. If you or someone you know likes traditional book-based documentation, keep reading for some ideas on how to spend wisely at the bookstore.

The rating system

To ensure that books were fairly reviewed, I used several factors to rate each work. Astute readers will note that the factors are independent of the goals of the book. This allowed me to rate books aimed at Fedora newcomers alongside reference books aimed at experienced system administrators. Each book received a rating from 1 to 5 for each factor, with 5 being the best possible rating and 3 being average for other books with the same price range, subject matter, and intended audience. To score something other than a 3, a book had to either shine or fall short compared to other books with the same general types of goals and audience.

Of course, without an army of industrial psychologists to back me up, I can't claim this system is purely objective. I did, however, rely on the stern but silent face of Shadowman looking down on me from my wall, and occasionally up at me from my beverage coaster, to keep me honest and fair. The factors I rated:

The book provides technically sound procedures that are concise but informative, using built-in Fedora system management tools and both common and project-specific best practices.
The book is written and organized well, with a reading level appropriate to the target audience.
The book achieves the goals it sets for itself in its introduction and cover material.
The book delivers a good value for both its price and the expected amount of time it takes a reader to digest the material.

Several of the books I reviewed claimed to cover Fedora Core 4, the current version at the time this article was written. Some of the books didn't deliver in this respect, offering information that was somewhat outdated. No doubt this is due to the extremely rapid pace of development in the Fedora community. As a part-time writer, I appreciate the difficulty of covering a moving target like Fedora, so I tried not to let these problems overshadow the overall content.

Most of the books also enclosed Fedora CD or DVD discs. This was helpful since readers might not have the luxury of a high-bandwidth connection to download the latest version. Again, the currency of the distribution differed from book to book, but had minimal impact on the ratings.

Finally, I noted that most of the books referred to Fedora Core as "Red Hat Fedora," probably in an attempt to show its historical roots in Red Hat Linux. In some cases, a reviewed book was the latest edition in a long line of Red Hat distribution-specific texts.

So now, in the words of rockumentarian extraordinaire Marty DeBergi, "Enough of my yakkin', whaddya say? Let's boogie!"

Red Hat Fedora Core 4 Unleashed

by Paul Hudson, et al. (SAMS, 1,140 pp.)

Unleashed is a real bruiser of a volume whose bright red cover sticks out on the bookshelf. Its five major sections include installation and configuration, desktop productivity, system administration, network services, and programming. The cover information states that the book is aimed at intermediate to advanced PC users, and I found that this was an accurate assessment. This is probably not the right text for a beginner or anyone who is not already well-versed in hardware and other computer operating system fundamentals.

Most of the technical advice in Unleashed is spot-on, and a user who follows the book's guidance is likely to be able to handle most garden-variety user or administrator tasks, and even some that are a bit unusual. The references sections for each chapter include a handful of URLs that offer freshly updated information to handle any "information lag" between the book's publication and the latest Fedora or Linux technologies.
However, some helpful basic information was occasionally missing. For example, there's almost no substantial coverage of disk partitioning in the installation section. I also found the section on software management a bit spotty, since it concentrated on direct use of the rpm command for software management, instead of the commonly recommended yum. I also noticed a claim that the Add/Remove Applications helper used yum to manage software. Software management issues are a constant buzz in the Fedora community, so it seems reasonable to expect Unleashed to cover the topic with a more attentive eye to detail.
A more glaring oversight, however, was that standard Fedora tools such as service, chkconfig, and Service Configuration often took a back seat to generic command line tools or manual configuration file editing. While I appreciate the need to fire up Your Favorite Text Editor to tweak configurations, I felt the book missed the mark in this respect. Part of the Fedora philosophy is constant improvement in helper tools for new Linux administrators. Without a spotlight on these tools, this book would be better off pitching itself as a more generic Linux reference.
Unleashed is well-written, with a jaunty, slightly conversational style, and almost never lapses into unnecessary jargon. It defines terms quickly when they are first used, so the reader is never left curious or confused. The book even manages to include a gentle but thorough introduction to the shell and command line and covers basic commands well without simply listing tables of options or quoting man pages.
Screenshots in Unleashed are small and effective, which makes room for more dense, informative text. The book takes the tack of exposing the console early, and covers a wealth of application options for common productivity and utility functions such as web browsers, email clients, newsreaders, text editors, and so on. There is a wealth of information in this book for enthusiasts of all levels.
However, this desire to be all things to all people—general users, administrators, programmers—also holds Unleashed back. Because so many subjects are included, depth is lacking in some of them, and other subjects one might expect to find are outright missing. Unfortunately, the missing topics sometimes are desirable ones, such as inventorying hardware for installation, setting up LAMP servers, using SSH tunnels to secure communications, and configuring wireless interfaces. Overall, however, Unleashed fares no worse than most books of its type.
This book would make a good textbook for instruction for somewhat experienced technical users or system administrators in a venue such as in-service training or community college. Although it is not the best choice as a practical guide for all things Fedora, its surveys of applications and procedures make it an excellent reference. In addition, its gentle introductions to the shell and Perl/Python programming make this book a good choice for Linux DIY junkies.

Teach Yourself Red Hat Fedora 4 Linux

by Aron Hsiao (SAMS, 705 pp.)

A bit more modestly sized than most of the other books, Teach Yourself is a book by the same publisher as Unleashed but with a very different mission. Teach Yourself is aimed solidly at beginning to intermediate computer users with no prior Linux experience. It consciously avoids being a complete reference, so that it can more effectively cover essential tasks. Its five main sections cover installation, Linux fundamentals, usage, the command line, and miscellaneous advanced topics.

Although it didn't affect my rating to a great degree, Teach Yourself was notable in that it was more up to date than most of the other books. Almost all menus and other GUI elements were correct for current Fedora Core 4 systems. This book, more than any other, concentrates primarily on the built-in features of Fedora that enhance usability and manageability. I'm not saying the book doesn't cover a generous helping of standard UNIX® tools. Teach Yourself even has a small section on one of my favorite tools, the programmable calculator utility bc!
In a few cases the focus on Fedora's standard graphical tools has undesired results, such as in its coverage of software management tools. For instance, the book devotes an unfortunate amount of space to the Add/Remove Packages and up2date utilities for software management, instead of yum, and refers erroneously to Red Hat Network subscriptions for Fedora. In general, however, by favoring the various system-config-* utilities wherever possible, the book gains a uniformity sometimes lacking in less tightly focused references. The sections on usage will also be appreciated by home users who may not already be familiar with productivity applications.
Teach Yourself clearly identifies its core audience and is written with an appropriate skill set in mind. It even covers basic window management skills for users, making this book ideal even for young readers. The book provides a well-organized progression of concepts and skills, building the reader's confidence and skill set as they follow the text. The slightly more conversational writing style and plentiful screenshots will also be helpful to computer novices or those who do not normally read technical books. The book's exceptional pacing and clarity even allow it to venture into some more traditionally dense subjects such as desktop publishing using LaTeX. I was impressed at the effort made to keep these subjects jargon-free and comprehensible to Linux newcomers.
Achieving a goal of ground-up productivity in Linux for a computer novice is not an easy task, but Teach Yourself succeeds admirably. It spends a substantial amount of time on more basic subjects. Its installation section is a good example, which explains in detail how to gather a hardware inventory for users who have never done one before. The section also doesn't shy away from showing readers where to gather other useful data using a pre-installed operating system. The book doesn't exhaustively cover network services, or advanced configuration options because these aren't part of the goal. Knowing which subjects to cover fully and which to avoid, and how to do so gracefully, is a difficult task for a technical writer, especially one who knows his subject well. Bravo to Hsiao on a job well done!
This work is an ideal starter book for absolute Fedora and Linux novices, or even completely new computer users who are starting on Linux instead of other operating systems. Teach Yourself includes just enough command line information to whet the appetite of those who want to begin peeking under Fedora's hood, without confusing the book's core audience.

With its well-tuned level of detail and focus on the new Fedora user's needs, Teach Yourself merits my "Best New User's Book" award.

A Practical Guide to Red Hat Linux, Fedora Core and Red Hat Enterprise Linux

by Mark G. Sobell (2nd ed., Prentice Hall PTR, 1,090 pp.)

The second of three "backpack busters," Practical Guide is a book for readers from many backgrounds, all of them technical. The book itself says its audience includes home or business users, system administrators, programmers, and technical executives. It was clear from reading this book that it's squarely aimed at people with a technical background or those looking to gather one. The major sections cover installation, general usage, advanced usage, system administration, network services, and programming.

Practical Guide used the very specific quality assurance strategy of restricting its coverage to Fedora Core 2 and Red Hat® Enterprise Linux® 3. By doing this, it avoids the pitfall of trying to keep up with Fedora's rapid development cycle, while ensuring that the reader will get precise information. Although this strategy made this book less current than some of the others I read, Practical Guide more than made up for this deficit with mountains of incredibly precise information. Because this book relies, more than any of the others, on the reader's careful attention to the text, Sobell is free to investigate every nook and cranny of Fedora and Red Hat Enterprise Linux.
This book simply oozes knowledge from every page, and is a testament to the author's extensive experience with UNIX family operating systems. From utilities to complete file management, from shell programming to system administration, from getting started debugging C programs to setting up a web server, this book leaves practically no stone unturned. The only drawback is that the book has so much depth that it was very difficult to skim, for fear of missing interesting details and insight!
The screenshots, at least the few that appear in the text, are small but effective. The layout of this book is exceptional, and besides the normal arsenal of admonitions, it includes small visual cues to alert the reader to differences between Fedora and Red Hat Enterprise Linux functions. The writing style has a crisp, authoritative, and academic quality that demonstrates the author's command of the subject matter. Instructors and students alike will find the book also contains a wealth of code and configuration examples.
There's a minimum of conversational fluff around procedures or informational material. This book demands the reader's full attention for every one of the almost 1,100 pages. The hefty index is extremely comprehensive and allows you to find an appropriate entry point for a subject. Once you get there, however, don't be surprised if you spend more time reading than you expected! It's likely you'll find a new tip or insight somewhere in the text. This book is one of the most demanding yet rewarding lay technical books I've had the pleasure to read.
The incredible depth of knowledge in Practical Guide makes this book an ideal companion for an academic course, in either an applied technology or computer science curriculum. It would also be perfectly at home in the bookshelf of any technical professional who works part- or full-time in a Linux environment. There are exercises included in every chapter to test yourself on the knowledge you have accumulated through reading. Special advanced exercises will not only motivate you to go the extra mile, but will get you thinking about tool chains from the UNIX/Linux perspective. There's even an excellent appendix primer for regular expressions to add spice to your command lines.
Although the book says part of its audience is home users, however, it's my feeling that some home users, especially those on the low side of "intermediate" skill levels, will be intimidated by the density of this book. The immediate plunge into the power and complexity of the command line shell may be troublesome to such readers. Furthermore, as a practical guide, it's missing a couple of relevant use cases, such as guidance on quickly and effectively setting up an ever-popular LAMP server. It does, however, cover issues I didn't find in any of the other texts, such as SSH tunneling, PAM, and gdb. The material the book covers is probably more than sufficient to make anything it doesn't easier, with a little determination and patience on the part of the reader.
It's true that Practical Guide may not be quite as current as some of the other texts. It's also true you don't want to drop it on your foot. But this is a comprehensive guide that, unlike so many other books on the market labeled similarly, truly lives up to its name. There's a long list of academic reviewers in the acknowledgments section who reviewed portions of this and other books by Sobell that share a corpus of common data. That's a testament to how well this book is suited for higher education purposes. The outstanding organization, content, and presentation make it ideal for technical professionals such as engineers and programmers. Anyone who masters the material in this book will be ready for most system administration tasks and advanced Fedora usage. And in that sense, this book is very practical indeed!

For its no-nonsense commitment to clearly and effectively communicating knowledge about all things Fedora, I gave Practical Guide my "Best Comprehensive Book" award.

Spring Into Linux

by Janet Valade (Addison Wesley, 336 pp.)

Spring is somewhat of an odd bird. Addison Wesley's "Spring Into" line is subtitled "the smart professional's choice," but I haven't quite figured out what's so smart about buying this book, compared to some of the other works I examined. The book is aimed at an audience of experienced computer users—more on that later. The introduction says the book "assumes an understanding of concepts and computer use," and that you, the reaer, can "get your work done on Windows® (or Mac or UNIX)." After going through this book, I'm not sure the book understands its audience or goals as well as I was hoping. This book was the only one I received for review that included a significant amount of material on non-Fedora distributions, which is reflected in the title and on the cover.

This book did no worse than others I've read. It covers basic concepts and tools fairly well, without exhaustively listing or explaining arcane options. (I like options, but if I were in a hurry, looking through a list of many irrelevant ones wouldn't be my cup of tea.) There is occasional incomplete or incorrect information. At times statements are simply erroneous, and other times they are misleading because the publisher has placed some rather severe artificial restrictions on space (see "Clarity" below).
For example, in a discussion about naming files, Valade writes, "Special system files have names that begin with a dot, so don't use a dot to begin filenames for other types of files." Certainly a discussion of these files would involve the concept of hidden files, and why they're used. (Writing books for beginners is difficult, since the author frequently has to weigh the benefit of including an additional concept that might simply confuse the reader.) It seems to me, however, that including an extra concept or two is more useful to a smart professional than simply waving one's hand and saying, "Don't look behind the curtain, nothing interesting to see there."
The method Spring uses would be understandable in a book explicitly designed for, say, my mom. In one designed for people with productive computer experience, it's not really very helpful. This was indicative of the strange split personality this book exhibits at times. In boxing terms, the short, punchy narratives broadly deliver body blows, but there's not much in the way of finesse. (And after that tortured metaphor, I promise not to bring up boxing again.)
The chapters progress in a fairly logical order, but aren't separated into any major sections. The subject matter in each chapter is organized into small one- or two-page topics. This is a design decision of the publisher, and because of it, the table of contents is a kind of quasi-index where you can browse topics easily. Because each topic in the contents listing is only one or two pages long, you can locate and ingest the book's entire content on a topic quickly. I thought this feature was fairly novel, and would probably be appreciated by a Linux user without the time or inclination to use a larger reference.
However, this positive factor was somewhat offset by the large and frequently superfluous screenshots in the book. I didn't see the necessity of including many of these screenshots in a book that was already pressed for space in each topic. Also, the lower density text in this book shifted the focus to showing off dialog boxes, rather than teaching an experienced computer user how to use those interfaces to do productive work. Finally, as a reader I was put off by a number of sentence fragments and short sentences communicating no helpful information, which popped up occasionally in the text.
The goal of Spring is never quite clear from its introduction or choice of subject matter. It tries to cover a wealth of material that other larger works strive for with higher-density information and, quite literally, four times the number of pages. For a book of this size to attempt a comprehensive study of Linux is a major, and in my opinion misguided, undertaking. So how could this book improve its effectiveness? I think a study of graphical desktop productivity for people who don't want to learn all about Linux administration would be very suitable for this size and kind of book. Such a book might include a study of the command line only up to and including file management and sharing, but would leave system administration topics to a companion volume or other references. What does the "smart professional" need to know? To effectively teach someone to be productive, the book first should define what productivity means in this context.
Spring would serve as a good introduction to the Linux environment for beginning to intermediate Microsoft® Windows users... if it could define and restrict its focus appropriately. Windows and Mac OS users will probably be frustrated by the lack of troubleshooting information. UNIX users and administrators are likely to want much more, such as setting up network services.
While this volume would undoubtedly be an aid to readers just starting their Linux journey, it never seems to ask itself the all-important question "Why?", as in "Why do people use Linux?" One answer, I think, is that with Linux you can easily and securely do things that are often difficult and expensive, and sometimes well nigh impossible, on other platforms. Answers like this help an author focus on goals and coverage of subject matter. Any book that claims it will provide "Linux mastery," as this one does on its back cover, needs to incorporate these answers. This book, unfortunately, does not. I would bet that most people who check out Spring will soon find themselves looking for more thorough coverage of Fedora.

Red Hat Fedora and Enterprise Linux 4 Bible

by Christopher Negus (Wiley, 1,117 pp.)

This book is the latest entry in the popular line of Red Hat Linux, Fedora, and Red Hat Enterprise Linux texts by Wiley. It boldly states up front, "100% Comprehensive, Authoritative, What You Need." Well, I did already give out my "Best Comprehensive Book" award, but let's see how Bible stacks up.

It's divided into five major sections, plus appendices, which cover getting started, general usage, administration, network and other services, and technology updates. The book provides a Publishers Edition of Fedora Core 4 on two CDs which provides a full-featured desktop edition, but that's not all. It also bundles a DVD with the complete Fedora Core 4 distribution, including source code and a bootable KNOPPIX distribution. Although bundled media doesn't win you a prize in this review, I have to admit I was impressed by the forethought of the author and publisher in this respect. I also noticed the technical review for this book was done by the Fedora Legacy Project's own Jesse Keating, which definitely raised my expectations a bit. Does Bible live up to those expectations, and its bold claims?

Similar to Practical Guide, this hefty tome is the latest edition of a continuously updated work. Bible has been published for five years running, and as expected, a mature cycle of authoring and editing has worked out many of the problems that plague new volumes. This book, more than any other I reviewed, provides an exceptional installation reference. It fully explains setting up a dual-boot environment, which is how so many Fedora and Linux novices set up their first working system. It gives the user ample cautionary information to minimize the chance of a mishap.
This book focuses, first and foremost, on the rich set of built-in Fedora system tools. It also provides, however, plentiful explanations of the technology behind the scenes of these tools. It even gives honest assessments of when more drastic measures are necessary, such as aiming your favorite text editor at a reluctant service configuration file. This book's straightforward and orderly approach to dealing with these types of configuration issues gives the reader valuable insight into actual workings of Fedora. The upshot is that troubleshooting then becomes less guesswork and more methodical. It was rare to find errors in this book; the few I found during my review tended to be slight misstatements rather than outright blunders, often due to slight changes in the distribution.
Bible provides a pleasant, conversational tone and uses short, effective sentence structure to keep the reader's attention on the task or concept at hand. The organization of the book is excellent, and its layout makes scanning quickly for topical material a very easy task. I questioned relegating topics on the kernel and SELinux to the final "new technology" chapter, but in time I feel certain these topics will be integrated into the larger text in a thoughtful and meaningful way.
Screenshots are large and easy to read but only used when appropriate. The dense text leaves plenty of room to thoroughly cover subject matter, and command line examples and other code fragments are used effectively throughout. I found the condensed information about network services, included in Appendix C, to be a very worthwhile and novel feature. Furthermore, the book consistently provides cross references to other chapters where related information appears. Although it is packed to the brim with information, this book delivers that information concisely and comprehensibly.
Rather than using exercises at the end of a chapter, Bible emphasizes a practical "learn while doing" approach throughout the text. Although this might make the volume less attractive as an academic text, this method of learning is extremely effective for professional education. Curiously, Bible did not cover some interesting and useful material I might have expected, such as SSH tunneling and PAM. It was the only text I reviewed, though, that provided a worthwhile discussion of legal issues that confuse new Fedora and Red Hat Enterprise Linux users, and how that impacts some user expectations. And although it does not offer quite as much perspective and depth of detail as Practical Guide, this book is a clear road map to success and productivity for beginning or intermediate Fedora and Red Hat Enterprise Linux users and administrators.
Out of all the volumes in this review, Bible was the one I felt best represented the Fedora spirit. It delivered a quantity and quality of information that beginners could digest but that experienced users and administrators could also consult. I would have liked to see a substantial section on troubleshooting, but I understand that Mr. Negus also has authored a whole volume that is devoted to that subject. (Such a book might make an excellent companion for this one!) Overall, I was incredibly impressed with this book's ability to balance being comprehensive with being comprehensible.

And so, ironically, just as Practical Guide received my "Best Comprehensive Book" award, Bible receives my "Best Practical Book" award. I'm mulling over whether I should contact the authors and get them to exchange titles!


In closing, I want to acknowledge my wife, who patiently endured my virtual absence while I pored over 4,000-plus pages of technical documentation. And here's a tip and a reminder—keep an eye on this magazine for future reviews of relevant books!

About the author

Paul W. Frields is an engineer with a background in digital forensics and investigation who has taught Linux to hundreds of technical and law enforcement professionals. He spends part of his spare time working on odds and ends for the Fedora Project, especially documentation. The other part is devoted to his wife and children, and his part-time work as a professional musician.