Author: Arman Danesh
Publisher: SYBEX Inc.
Price: $39.99 US (softbound, with CD)
Reviewer: Bob van der Poel
With Linux becoming more and more popular with home computer users and the media, as well as the traditional base of “hackers” and hobbyists, it is no surprise that a plethora of introductory books have appeared on your local bookstore's shelves. Some are excellent, some are poor, and some fall in between. Mastering Linux by Arman Danesh could be one of the good books, but due to some oversights, it doesn't quite make it.
Mastering Linux is a big book—928 pages; unfortunately, both its size and its title promise more than it delivers. It is, for the most part, well-organized and well-written, and contains much information; yet it falls short in its promise of mastery of the subject.
According to the introduction, the book “aims to open the world of Linux to the average computer user.” It recommends that the reader be “comfortable using a Windows or Macintosh system” and be conversant with using the DOS prompt. The level of writing and the assumptions of prior computer knowledge in the book match these initial guidelines. The writing style is clear and easy to follow.
The book is organized into three major sections, with a large appendix.
The first section, “Welcome to Linux”, covers a bit of the history of Linux, an overview of the major distributions available, and the minimum hardware requirements needed for a usable system. Unfortunately, the author does not mention the large contribution made by the GNU project. I'm not suggesting we slavishly insist on calling Linux systems “GNU/Linux” or “Linux/GNU”, but fair is fair. No wonder Richard Stallman gets upset these days.
Section two, “Essential Linux”, guides the user though a typical installation from the supplied CD which contains a complete Red Hat 5.1 distribution. Next, the author covers the task of installing and configuring the X Window System and various window managers, printers, modems and some commands and applications. I believe the user described in the introduction should be able to get a working Linux system set up using these instructions.
Section three, “Linux in the Small Office/Home Office”, covers network configuration, Windows and Novell integration, setting up routers, web servers and sendmail. Most users needing to set up these types of services should have no problem using the author's instructions.
Finally, there is the appendix. At just under 300 pages, this is a major part of the book, but I'm not sure how useful much of it is. For example, Appendix B (18 pages) is a listing of all the fonts available under X (this seems to be a printout of “xlsfonts”). Appendix D (26 pages) is a listing of a sendmail.cf file. Also included in the appendices are “The Linux Hardware Compatibility HOWTO” and “The GNU Public License”. On a positive note, there is an excellent command reference which gives a short overview of nearly 200 of the more common commands supplied in a Linux distribution. In my opinion, this overview should have been combined into the main text instead of being hidden in an appendix.
My biggest problem with Mastering Linux is it appears to be incomplete in many subjects. Being a tad simplistic may be a virtue in a book destined for “dummies”; however, something that promises you will “learn everything Linux has to offer your business or home office” has to rise well beyond the simple. In many places, the book either assumes too much of the reader, or it stops short of truly completing the task at hand.
Often, the book could leave the novice confused. For example, when introducing Linux commands and file names, no mention is made of the fact that Linux is case sensitive. To add confusion, the sections on the various commands are introduced with the command names in mixed-case, while the examples use the proper lowercase names. Even though some mixed case file names are used in the examples, presumably to illustrate that both upper and lower case letters are acceptable in a file name, no mention of the need to reproduce the case exactly is noted. Certainly, an experienced UNIX user will know this, but pity the poor tyro graduating from the DOS prompt.
At other places in the book, the instruction stops short of the “mastery level” promised. The section on setting up a PPP connection starts off using commands as root. This is fine for getting a PPP connection established for the first time. But, the author should have detailed methods for setting up the connection scripts so that users other than root can use them. On a properly configured system, there is no need to establish PPP connections only as the root user.
Another example of not going far enough is the section on configuring Sendmail. The author covers setting up sendmail just as an on-line server, since it is “a bit easier to configure and understand than off-line servers.” Yes, it is easier, but if I'm mastering Linux, I really would like to do learn some of the hard stuff as well.
The book does a good job in giving many overviews of the different major user packages available. As two examples, Chapter 6 has nice overviews of nine different window managers and Chapter 27 overviews ten different web servers. Similar comparisons are made throughout the book.
Mastering Linux is not a bad book. If anything, it is overly ambitious. It will enable a computer user with some basic computer skills to get up and running with a Linux installation on a PC, but I'm afraid some of its major oversights will also leave him frustrated or rushing to buy other books. It is useful, but don't be misled into thinking that this is the only book you'll ever need or that you'll master Linux with it.