The Complete FreeBSD

Every now and then you find a book that proves as indispensable for your day-to-day use as a dictionary or any of a dozen O'Reilly books you probably have at your fingertips. The Complete FreeBSD is one such book. This book contains everything you are likely to need to know, both when you first start using FreeBSD and even after you are a seasoned user. It helps you understand not just BSD concepts, but UNIX concepts in general. It's the type of book you'll keep turning back to because you just like the way author Greg Lehey, one of the core developers for FreeBSD, explains it.

Greg sent me a copy over a year ago now, and despite the elapsed time, I find his book even more useful now than browsing the many websites devoted to FreeBSD. It's the place I look first for my BSD answers. I use it even before I look at the FreeBSD Handbook (www.freebsd.org/handbook/).

What I praise most about this book is that it covers topics thoroughly from the bottom up. For example, rather than simply providing a quick chapter on connecting to the Internet using PPP, where some books stop, this book provides 5 chapters covering configuring UNIX network basics, serial communications with modems, and, four chapters later, explains how to configure PPP. By the time you read about configuring PPP, you have a solid foundation on what you're really doing.

The current edition is the 3rd, printed in 1999. That was about release 3.1 is FreeBSD, and the current released version of FreeBSD is 4.4 (September 2001). So, some of what appears in the book will not be up-to-date. But, you should know that Greg has fastidiously provided addendum and errata to the book, which you can download at http://www.lemis.com/errata-3.html. I must emphasize that Greg's approach depends on explaining things beneath the surface, as well as on the surface. If you learn how to do things Greg's way, you'll avoid having to relearn many things each time a widget or toolkit changes. That's one of the important differences between Greg's and many such books. If you understand Greg's book, you won't need a graphical tool to mount or unmount filesystems or to configure nameserver. You can do it all with vi (or with Emacs, which is what Greg prefers). You'll also understand the theory so you can figure out how to do it with new tools when they appear.

The Complete FreeBSD is 773 pages in length. It has 35 chapters, plus a collection of man pages, useful appendices, and a helpful index. Not only are the networking chapters excellent, but there are also very strong chapters on startup and shutdown, kernel configuration, disks, printers, the ports system, and synching your system source tree with CTM or CVSup. I still use some of these chapters frequently.

Several other books on FreeBSD are on bookshelves in bookstores. The FreeBSD Handbook is one of the best, and while it is up-to-date (at least the online version is), it's not as thorough in some respects as Greg's book. The FreeBSD Corporate Networker's Guide appears to be a solid book, though I've only flipped through it in the bookstore. FreeBSD Unleashed is supposed to be out from SAMS. It might be a fine title, but I have been disappointed by Macmillan's commitment to technical accuracy in the past. So I have a wait and see approach to that title. The Design and Implementation of the 4.4BSD Operating System is an excellent book. 4.4BSD is what the open source BSDs are based on. But this book is of more use to computer scientists than it is to the average person using FreeBSD to get his or her work done. Of all these books, I choose Greg's book, along with the online version of the Handbook, to check first for answering my BSD questions. So far, I haven't been disappointed.

Some personal caveats about the book:

  1. There is a slight bias to SCSI devices over IDE devices in the book. SCSI support has always been excellent in FreeBSD, and the IDE support has lagged slightly. The book reflects this. You should read a more current source for more details on IDE support in FreeBSD now.

  2. Some kernel configuration options have been added since the release of the book. Support for more devices and so on. This book also doesn't mention CD-RWs or DVDs.

  3. More tools for the ports system have been added. You can upgrade single ports now, for example, without updating the entire ports tree.

  4. You can now do a ``make buildworld'' and a ``make installworld'' instead of just a ``make world'' that Greg talks about in his chapter on ``Keeping up to date with FreeBSD''.

  5. Device nomenclature has changed somewhat. You might be a little confused by reading some of Greg's explanations that involve obsolete device names.

Despite these weaknesses, many of Greg's explanations just can't be topped. The parts of the book where the current state of FreeBSD has surpassed Greg's documentation can be supplemented by other sources, such as the Handbook or some of the other tutorial-type websites for FreeBSD, such as the BSD Vault and the FreeBSD Diary (see bsdvault.net and www.freebsddiary.org). Go ahead, buy the book: you won't be sorry you did.



dsj@dsj.net