FreeBSD: The Complete Reference 153
FreeBSD: The Complete Reference | |
author | Roderick W. Smith |
pages | 869 |
publisher | The McGraw-Hill Companies |
rating | 9 out of 10 |
reviewer | Kirk Strauser (Just Some Guy) |
ISBN | 0072224096 |
summary | (Most) everything you need to know about FreeBSD |
Overview
This is a large book. At 869 pages, not including copies of the GPL and BSD License, it packs some serious heft (it weighs slightly more than three pounds).
It is divided into six main parts, which are further divided into 32 (!) chapters. The sections are:
- FreeBSD Installation: Hardware requirements, installation instructions, and a general overview.
- Basic System Administration: Partitioning, startup procedure, file management, printer setup, user management, software installation, kernel configuration, and X.
- Network Configuration: Introduction to networking, dial-ups, client/server principles, basic firewalling.
- Servers: In-depth explanation of file, mail, web, and shell servers, plus an overview of DNS, NTP, DHCP, and other random services.
- Common User Programs: Introduction to KDE and GNOME. An overview of various network clients and office software. A short tutorial on The GIMP. The state of multimedia and games on FreeBSD.
- System Maintenance: The basics of system monitoring. How to upgrade the OS and installed software. An overview of system security. How to compile software. Basic scripting. Troubleshooting and how to get help.
The Good
This book is an excellent starting point for people new to FreeBSD, or even to Unix-like systems in general. Each of the wide range of topics is covered in a reasonable amount of detail. Mr. Smith claims to have been working in the field for quite a few years, and it shows in the way each part of the OS is presented as a component of the whole. This isn't a "cookbook"; readers are introduced to each subject in a way that encourages them to make their own configuration decisions.
I was unable to find any factual errors, and I certainly looked for them. The author and proofreaders did a good job of checking their information before going to print. Since my copy was from the first printing, I'm especially impressed.
New users, in particular, will appreciate the hand-holding approach of the earlier chapters on installation and basic configuration. More experience administrators should be able to find enough new information about rather routine subjects to keep them interested.
Of particular interest was the almost complete lack of FreeBSD advocacy in the book. The introduction features a remarkably even-handed discussion of its relative strengths and weaknesses compared to other Unix and non-Unix operating systems. I greatly respect the author's decision to weigh the alternatives fairly and let the reader form his own opinion.
The Bad
FreeBSD: The Complete Reference is, unsurprisingly, a new entry in Osborne's "Complete Reference" series. As such, it's fairly comparable in size, layout, and scope to other books in the series such as Herbert Schildt's C++: The Complete Reference (my favorite C++ text). That's a pretty high standard to live up to, and I began my first pass through the book with a very critical eye.
My only real complaint is that, despite the title, this is not a "complete reference." Although The GIMP enjoys its own sub-chapter, the book makes no mention of certain high-profile features such as Vinum (FreeBSD's logical volume manager) or jails (chroot on steroids). It's obviously not possible to document every single component of the entire OS, but the name would seem to claim exactly that. Of course, even though FreeBSD: The Desktop Reference or FreeBSD: Reference For Users might be more appropriate, those would violate the series' naming convention. Still, don't be fooled by the title.
Although less important, every user has their own idiosyncratic ways of accomplishing certain tasks, and I tend to get distracted by recommendations that are counter to my preferred methods. Having said that, Mr. Smith makes some strange recommendations, such as editing the passwd file and compiling the password database afterward by hand rather than using vipw. His system certainly works, but I can imagine a new user scratching their head in puzzlement at the amount of work necessary to change their name.
The Ugly
Any book of this size and scope will have a few minor quirks, and this is no exception. For instance, the author needed to use several domain names as examples throughout the book. Rather than using the traditional "example.com," he decided to use his own creations. That in itself is no problem, except that he and his publishers have not registered those domains for their own use. I can only imagine the surprise when a curious newbie tries to access one of the hostnames in a web browser and finds that a prankster has register the domain and used it to mirror goatse.cx.
A more serious lapse, in my opinion, was the decision to include an installable copy of FreeBSD 5.0 on the CD that comes with the book. Unfortunately, freebsd.org refers to that version as a "new technology release," and it suffers from a rather long list of installation and stability problems. Some day in the future, the 5.x series will be considered stable and ready for use on production systems, but that's still a while off. I sincerely hope that no would-be new users become disillusioned with their newly-installed systems and give up on FreeBSD as a slow and unstable OS. Despite the drawbacks, though, I can understand the author's desire to focus on the new 5.x series instead of the more stable but older 4.x line. This book was published in 2003, and I doubt that he wanted to have to publish a second edition detailing the new release less than one year after initial release.
Summary
This is a good book with a lot of solid information for new and experienced users. It may have a few minor problems, but it is a well-written and approachable reference that should make a valuable addition to any FreeBSD administrator's bookshelf. I would recommend it highly to anyone migrating from other Unix-like systems, finding themselves in charge of a small network, or wanting to see what the fuss is all about. If you're a new user, though, do yourself a favor: download and install FreeBSD version 4.8 from http://www.freebsd.org/ instead of installing the copy on the book's CD.
You can purchase FreeBSD: the Complete Reference from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Re:Thanks for hijacking my referral links (Score:4, Informative)
Bullschildt (Score:5, Informative)
From the alt.comp.lang.learn.c-c++ faq [faqs.org]:
Compleat vs complete (Score:2, Informative)
Actually, "compleat" for "complete" in the titles of guidebooks is an ancient and revered practice, going back to this book [adelaide.edu.au].
I guess you learn something every day, huh?
Re:Bullschildt (Score:2, Informative)
Well, that's certainly a contrasting opinion. I happened to like the C++ book (which isn't mentioned in the links you gave). Note that the link to www.qnx.com is dead; if it had a criticism at one time, it's been removed.
Re:Does it apply to OS X? (Score:4, Informative)
Almost not at all. Large sections involve installation and low-level configuration, which is irrelevant for Mac OS X. Ditto for the ports collection, administering the system, upgrading software, or installing multimedia programs. I don't think there's really anything in their for Mac users, other than maybe the section on configuring servers, and Apple probably has their own tools for that.
Re:include news and deep-documented stuff (Score:4, Informative)
Re:Bullschildt (Score:2, Informative)
Cheaper (Score:2, Informative)
Re:A Comparison of FreeBSD and Linux (Score:2, Informative)
I've been a FreeBSD user since my first exploration into non-MS OSes many years ago, so my Linux knowledge is second-hand (and may not be 100% accurate or up-to-date) but here are tidbits I think I know:
- The licenses are fundamentally different. This doesn't matter so much to me but may to you. I'll therefore skip that, but understand that BSD vs. GPL is somewhat of a Holy War.
- Linux seems to me to be more disorganized. With FreeBSD, you have one true OS. With Linux, there's the true Linux kernel, but that's useless by itself. Instead, it depends on other groups to put together distributions around a kernel (Red Hat, SuSE, etc) adding on userland programs and maybe even patching the kernel a bit for their own needs. With FreeBSD, if you're running FreeBSD 4.8 then you're running the same OS as everyone else with "4.8". With Linux, you're not running Linux version whatever, you're running Red Hat ver whatever, which is based upon a particular version of the kernel, which is different than some other distribution even if it's based upon the same kernel version. An analogy is with cars: With Linux, there's a Linux "engine" but many different companies build cars around that engine. With FreeBSD, they make the engine AND the car.
- [opinion] Linux users seem to be more "fanatical", while the FreeBSD camp seems more level-headed [/opinion]
- FreeBSD is renown for it's stability. Linux is a bit funkier... it seems to go for flash and glitz more than rock-solid stability. This is not to say that Linux can't be made stable, or that FreeBSD can never crash. But they approach things from a different angle. A Linux distribution for example tends to initially install X and a ton of programs you may or may not use. The benefit is that you might get to a GUI immediately with less work, but you also might have 100 daemons running you really don't need. FreeBSD on the other hand might take more work to get to initial GUI but once you're there you probably only installed what you really wanted to, and nothing/little else.
An enlightening point is found at Netcraft's list of the servers with the longest uptime... check what OSes they run:
http://uptime.netcraft.com/up/today/top.avg.htm
- Yahoo runs on FreeBSD. Hotmail did too, before Microsoft took it over. The largest/busiest FTP site on the 'net runs on FreeBSD (www.cdrom.com).
- The FreeBSD ports system is awesome. As far as I know, most Linux distributions don't have anything like it. I think one has something that is close but is based upon precompiled binaries. FreeBSD's ports you compile yourself, which takes longer but has benefits that I like. I think the various Linuxes are trying to "catch up" to FreeBSD in this regard but I could be wrong about the current state of affairs. Keeping apps (and the OS itself) up-to-date with tools like CVSup and portupgrade is sickeningly easy.
- I find upgrading FreeBSD to be incredibly simple. I have heard it surpasses most Linuxes but I could be wrong. But basically with 4 commands you're done (aside from mergemaster, which could use improvement, but really isn't so bad for most simple people like me once you "get it").
- Linux gets more press, but I consider FreeBSD "the best OS you've never heard of". I'm a firm believer in having your vote be counted even if it's the underdog. I'm putting my support behind FreeBSD because I like it better than Linux, even though I'm in the minority. Using Linux "because everyone else does" is the same mistake that turned Windows into a painful monopoly.
- There are technical details with threads and scheduling that differ between the two but I don't understand them enough to say anything more on the subject.
- Don't let people scare you into thinking FreeBSD can't be used on the desktop and is only good for servers. I use it as my desktop at home.
Well that's all I can think of for now. Hopefully I don't start a flame war... I am not anti-Linux (although I'm anti MS).
Re:A Comparison of FreeBSD and Linux (Score:3, Informative)
One comparison can be found in the essay BSD: Linux With a Twist [sites.inka.de]. The FreeBSD Manual [freebsd.org] also has a section on the differences primarily focused on the development model.
But just as a summary
Support
Linux has more users, more books, more groups, more mailing lists and more newsgroups. Whether this is good or bad depends on your point of view. I find comp.unix.freebsd.misc to have generally very good advice.
What you get
Most Linux distros seem to be headed towards a "complete desktop in a box" approach. In contrast, BSD just gives you a bare-bones distribution with most other applications available as packages or ports. Under BSD the kernel and core programs are treated as a coherent unit.
Flavors
Linux seems to spawn off a new distribution about once a month. There just seems to be three main BSDs that focus on different things. (FreeBSD, OpenBSD, NetBSD.)
Java
The BSDs lag behind Linux in Java support a bit. I don't have any problems with Java 1.3 but I'm told Java 1.4 is not production quality yet.
License
The BSD license permits incorporation into proprietary systems. Depending on your needs and politics this is either a good thing or a bad thing.
Hardware
Linux has support for more peripherals. NetBSD has support for more CPUs.
Learning Curve
Hrm. BSD pretty much forces you to master command-line unix. The text-based install assumes a pretty good understanding of basic concepts, and while the Handbook is excellent, it also assumes a bit of knowledge.