May 31, 2005

Review: FreeBSD 5.4

Author: Jem Matzan

One of the oldest Unix-like operating systems, FreeBSD, continues its advancement with the sixth release in the FreeBSD-5 series. Its developers have added nothing major, but have made many modifications, fixing a number of problems introduced in previous releases. FreeBSD 5.4 is the best release since 5.1, but it still may not be ready for prime time.

FreeBSD is a complete, multi-platform, Unix-like operating system developed by a large community of developers. As with GNU/Linux, you can make FreeBSD into a server or a desktop operating system. FreeBSD handles software management through two frameworks: the package database, which contains precompiled software packages, and the Ports tree, which contains metadata that allows you to automatically download and compile programs from source code. There are more than 12,000 programs in the Ports tree. Users can install packages easily from the command line, from an ncurses-based utility called sysinstall, or through "distribution sets" designed to install several packages together.

The FreeBSD operating system is licensed under the BSD license, although some included userland programs are licensed under other free software licenses.

Significant enhancements since 5.3

I found much wrong with FreeBSD 5.3, and I was glad to see that the FreeBSD development team squashed some of the bugs that I encountered in that and previous releases. A few of the most notable changes in the x86 and AMD64 editions are:

  • Security flaws in fetch, procfs, linprocfs, telnet, sendfile, ioctl, and cvs were fixed. These security fixes were already available to FreeBSD 5.3 users.
  • The ULE process scheduler was fixed, and is now available as an alternative to the 4BSD scheduler.
  • CPU frequency scaling functionality was added to the kernel.
  • Several network card drivers were made multiprocessor-capable. One network driver was added to support USB Ethernet adapters. The Intel Pro/1000 and SysKonnect/Yukon LAN drivers were fixed.
  • OpenBSD's CARP protocol was implemented.
  • The FreeBSD IP Firewall (ipfw) was updated with new options and features.
  • Network devices can now be given aliases at boot time.
  • BIND, netcat, Heimdal, OpenSSL, and Sendmail were updated to newer versions.
  • Documentation was updated.

You can find a complete list of bug fixes, enhancements, and additions in the release notes.

Putting it through the gauntlet

Testing FreeBSD 5.4 took longer than usual because of problems I had with it. I was sad to see that most of them were leftover bugs from 5.3 and 5.21 that still have not been fixed. These are problems that I found in several days of testing and note-taking on two test machines with both the x86 and AMD64 editions of FreeBSD.

I didn't have any trouble with a single-CPU Athlon 64 4000+ with an MSI K8T Neo2-FIR motherboard and a Seagate SATA-V hard drive with the AMD64 edition. On a dual Opteron system running the 64-bit FreeBSD, everything worked fine in AMD64 mode, except that an annoying "AD4: TIMEOUT - WRITE_DMA" error message popped up often and slowed to a crawl my test systems that used Serial ATA hard drives with the Silicon Image SiI3512 SATA controller.

Using the x86 version on the Opteron system resulted in a crash on first boot, possibly because the developers don't compile SMP support into the default kernel. It's not possible to compile a custom kernel during the installation procedure, so I'm not sure how one would fix the problem.

The x86 "boot only" ISO that I downloaded did not detect my Realtek 8169S LAN card properly during installation. This is a problem because this ISO needs to connect to FTP sites to download the operating system. The standard two-disc ISOs for both x86 and AMD64 worked perfectly -- only the "boot only" ISO failed to configure the network card. And yes, the MD5 sum did match between the server and my downloaded copy, and I tried writing the ISO twice to two different kinds of disc.

I was disappointed to find that Linux binary compatibility was still 64-bit only for 64-bit FreeBSD. That means no 32-bit Linux binaries. The proprietary Nvidia driver is still 32-bit only as well, although that's more Nvidia's fault than the FreeBSD project's. Most other programs in the Ports tree will work on AMD64, but many of them still don't compile for that architecture without editing their Makefiles.

Although not technically a "bug," all of the links on the release notes Web page that lead to man pages are broken at the time of this writing.

The "boot with USB keyboard" option in the boot menu was useless; every way I tried it, I had to unplug and replug my USB keyboard to get it to work after booting FreeBSD. This is the first time that I tested FreeBSD extensively with a USB keyboard, so I don't know if this bug is a holdover from previous releases.

On the plus side, I had good results with FreeBSD's new process scheduler that was disabled in the previous release. I used SCHED_ULE (ULE doesn't stand for anything -- it completes the word "schedule" and was designed to replace the default SCHED_4BSD scheduler) to compile KDE and GNOME from scratch to see if I could break it. Several hours later, both compiled and installed without incident. I left ULE in the kernel for another day and used the system normally without running into any problems with stability or noticeable changes in performance.


I used to use FreeBSD as my workstation operating system; in fact, we kicked off NewsForge's "My Workstation OS" series with a piece on that subject. But instead of getting better with each release, FreeBSD seems to hang on to a lot of serious problems while concentrating on less critical issues like what is and is not under the "big giant lock" (the nickname for the old thread-locking mechanism in FreeBSD, which prevented it from being multi-threaded). From a user's and reviewer's perspective, it looks as if FreeBSD's developers are trying to optimize code that does not yet work properly.

Speaking as a former FreeBSD user, I want this operating system to work again. I was disappointed to find that that didn't happen with 5.4-RELEASE. If you have FreeBSD 4.11 production machines and are thinking of upgrading, I suggest you leave them as they are for now.

Purpose Operating system
Manufacturer The FreeBSD Project
Architectures Alpha, AMD64, x86, IA64, PC98, SPARC64
License BSD
Market Low-end Web and email servers, desktop users
Price (retail) $40 for a four-disc set, or you can download it for free via FTP
Previous version 5.3
Product Web site Click here


  • BSD
Click Here!