Sofware in Review
Tech news
Software reviews
Hardware reviews
Discuss technology
Sofware in Review → Operating systems → BSD →

FreeBSD 6.0 review

By Jem Matzan

The FreeBSD operating system is finally through it's buggy 5.x series and into the more reliable 6.x series. Most of the problems of the old days -- kernel panics on multi-CPU machines, AMD64 troubles galore, and shaky network drivers -- are gone. FreeBSD still isn't perfect, but at least with 6.0-RELEASE it's more stable and functional than it has been in the recent past.

FreeBSD overview

If you've never used FreeBSD before, this section's for you. If you're already familiar with FreeBSD, you'll probably want to skip down to the next section to find out what's new.

Originally developed from the Unix-based Berkeley Software Distribution, FreeBSD is among the oldest extant Unix derivatives. It is currently maintained and improved by a large team of programmers, and supported monetarily by individual and corporate donors.

From FreeBSD you can generally expect a modern Unix-like operating system heavily armed with network services and tools. It is relatively easy to install, configure, and administer FreeBSD on servers or desktop machines. FreeBSD is scalable up to at least 12 CPUs (this is as many parallel CPUs as it has been officially tested with), which includes SMP support for Hyper-Threading and multiple cores.

Aside from the programs included in the base system, FreeBSD offers extra software via pre-compiled binary packages; and a Ports system, which functions much like a less automatic version of Gentoo's Portage software management framework. From Ports you can automatically download, compile, and install more than 13,000 programs. There are few applications in the free software canon that are not available in the FreeBSD Ports tree. There is also an available Linux binary compatibility layer which is efficient enough to say that there is no noticeable performance difference between Linux binaries and FreeBSD binaries running on the same system.

Some of the FreeBSD userland programs are used in Darwin, which is the operating system that forms the basis for Apple's OS X. However, the OS X kernel is based on Mach, not FreeBSD, so OS X is not "based on" or "developed from" FreeBSD in the traditional sense (such as the way OpenBSD was forked from NetBSD in 1995).

The majority of the FreeBSD base system is licensed under the free software BSD license, although some included programs are governed by the GNU GPL and similar free software licenses.

What's new in 6.0

To begin with, several security vulnerabilities were fixed in 6.0. Documentation for kernel options and userland programs was also updated. Manual pages now have a more standard look, and are more accurate and thorough.

Kernel enhancements in 6.0 are numerous, but most of the changes seem to be bugfixes and new or enhanced hardware drivers.

One of the cool new enhancements in FreeBSD 6.0 is the ability to rename network interfaces at boot time through rc.conf. If you have multiple interfaces, or programs like VMware that demand a certain network device name in order to bind its services to it, this is a very handy feature.

Lastly, the FreeBSD installation disc structure has changed. There is still a BOOTONLY disc that is designed for FTP installations, but disc 1 and 2 of the complete set are now rearranged. Disc 1 now contains the installation utility, base distributions, and a live filesystem that can be booted to in case your standard installation becomes unbootable. Disc 2, which used to contain the live filesystem, now contains some of the most popular and important FreeBSD packages.

The 4BSD process scheduler is still the default. SCHED_ULE was supposed to have been fixed by now; I didn't test it thoroughly because I couldn't get FreeBSD to work on enough of my test machines. Also, in contrast to most of the 5.x releases, you have to recompile the kernel to get SMP support.

Putting it to the test

FreeBSD 6.0/i386 worked perfectly on a computer built around an Intel D915GUXL motherboard, so I was, for the first time in several releases, able to give it a good stress test on a somewhat modern machine. The 3.2Ghz CPU that I used has Hyper-Threading Technology, which means that operating systems generally treat it like it has two discrete processors. This very same system used to cause FreeBSD to crash like crazy when I had HTT enabled, but no matter what I did to FreeBSD 6.0, it refused to crash or cause any other errors. I compiled GNOME from Ports on one virtual terminal, another program in another terminal, and built the userland with four parallel makes (make buildworld -j4) at the same time, and there were no problems.

I noticed that ACPI support has been greatly improved. When I touched any of the buttons on the front of my machine, FreeBSD was aware of it. Previously, FreeBSD was almost totally ignorant of ACPI events, and often crashed due to incomplete or sloppy ACPI support.

As always, there was no trouble getting network services started ala Apache and Postfix. I didn't test any other services. MySQL 5.0 installed cleanly and appeared to work as expected, but I didn't hit it with any really intense tests. Desktop functionality was the same as it has been in previous releases -- you have to do much of the configuration on your own, but you can build a perfectly usable desktop system from FreeBSD. KDE 3.4 and GNOME 2.10 are the desktop environments of choice, but XFCE and a wide array of window managers are also available -- pretty much everything you'd get with Debian or Gentoo.

Bugs and problems

The AMD64 edition didn't work well on two systems. Since it has a long and inglorious history of severe stability problems that appear to have carried over into 6.0, I would strongly recommend using the i386 edition of FreeBSD instead of the AMD64 edition. Alternatively you could make the leap to OpenBSD or GNU/Linux, which have more reliable 64-bit AMD64/EM64T builds.

Specifically FreeBSD 6.0/AMD64 had severe difficulty with a Sun Java Workstation 2100z -- the system repeatedly kernel panicked and crashed with vinvalbuf and g_vfs_done errors under light load. There were also problems on a system based on an Asus A8N-E motherboard: the Nvidia network driver (new to FreeBSD 6.0) gave random, repeated device timeout errors (this problem also occurred on the i386 edition). The device timeout error would either slow the system to a crawl for long periods of time, or kill the network connection entirely. This occurred at random times while the network was not even in use.

The i386 edition of FreeBSD killed the connection to the USB keyboard on the Sun Java Workstation just before it got to the sysinstall menu. The keyboard worked fine up until that point. In previous releases when this happened, I could unplug and replug the keyboard and it would work again. That trick no longer works with FreeBSD 6.0.

My Atheros-based (Linux- and OpenBSD-compatible) wireless card was not immediately recognized by FreeBSD 6.0/AMD64, but I didn't have the opportunity to find out why -- the system kept kernel panicking.

The rearranged installation disc structure was all screwed up during my testing. I selected about two dozen packages for installation, and sysinstall responded by asking me to switch discs more than 20 times. I ended up rebooting and reinstalling without any packages (packages are also available via FTP, but all of the mirrors I tried at the time had not yet downloaded the package tree, so only the slow main server was available).


While FreeBSD 6.0 is a vast improvement over the disaster that was the 5.x series, it is still horrible when it comes to supporting "new" hardware. I'm sure FreeBSD works perfectly on any computer from the Pentium 4 socket 478 era all the way back to the original Pentium 60 chip, but it seems to have a great deal of trouble managing any technologies introduced in the past year or so.

FreeBSD 6.0 seems to be stable enough on SMP machines that FreeBSD 4.x stragglers should be able to upgrade without any trouble -- if your machine works on FreeBSD 4.x, it will probably work just as well on this new release. Just don't expect a lot of new machines (or more specifically, machines that use new technologies) to be fully supported in FreeBSD 6.0.

Hopefully FreeBSD 6.1 will support more of my test machines and I'll be able to do some serious performance benchmarking to see what kind of behind-the-scenes work has been done in the new 6.x series.

Purpose Operating system
Manufacturer The FreeBSD project
Architectures x86, AMD64/EM64T, SPARC64, PC98, Alpha, PPC, IA64
License BSD, although some parts of the base system are under the GPL or other free software licenses
Market Web, email, and other network services servers; also useful as a desktop OS
Price (retail) Free to download, or $40 for a CD set
Previous version FreeBSD 5.4
Product website Click here