December 20, 2004

FreeBSD 5.3 is "stable" but not production-ready

Author: Jem Matzan

Since the introduction of the FreeBSD-5 branch, FreeBSD enthusiasts have been eagerly awaiting the day when the new codebase would stabilize. After much development and four previous releases, FreeBSD-5 has finally gone stable with version 5.3. But don't mistake a stable codebase with stable software. While the development team will no longer accept major changes to the base system, FreeBSD 5.3 still has bugs and problems.

FreeBSD is a complete Unix-like operating system entirely developed by a single large team of programmers. This is in stark contrast to GNU/Linux which, as a complete operating system, has no central, cohesive developer base and is packaged in myriad different ways by myriad different distribution projects and companies; and proprietary Unixes, which are closed-source, restrictively licensed, and work on a comparatively small number of usually proprietary hardware architectures. FreeBSD has historically been clean, fast, reliable, and scalable. It's easy to use, learn, set up, and navigate from the command line, has more than 10,000 software programs in the Ports system, runs on a wide variety of hardware, and can easily be used for either a desktop or a server.

The transition to 5.x

Until the release of 5.3, the most recent "production release" was the FreeBSD-4 series, which is presently at version 4.10 and has been deemed the "Legacy" release in the wake of the 5.x branch going to STABLE. FreeBSD-5 was supposed to be a grand introduction of new technology -- a revolutionary improvement to the tried and true 4.x branch -- but soon after it left the gate, it got caught up in developer politics and failed implementations of too-ambitious theories among other questionable design decisions, causing some developers to fork the FreeBSD-4 project into a separate and more focused operating system.

The ULE (which is not an acronym; its full name is SCHED_ULE as opposed to the older SCHED_4BSD) scheduler continues to have stability and performance problems and was totally disabled instead of being made the default process scheduler in 5.3 as planned. The mix of threading subsystems still yields problems with efficiency and stability. Also, the networking subsystem may now be multithreaded and therefore faster on SMP systems, but users with some implementations of the 3Com (SysKonnect/Yukon) gigabit LAN chip are now unable to access their network at all because of new bugs that have popped up in the driver; other SysKonnect/Yukon users have problems under heavy network traffic, along with those using Intel Pro/1000 chips. Unfortunately all of our test systems use these network chips for onboard LAN; coincidentally they are two of the most popular gigabit LAN chipsets used on modern motherboards from major manufacturers. We also experienced lockups during boot if a custom-compiled kernel did not have SMP enabled on a Hyper-Threaded computer. A list of these and other errata can be found here.

Considering the long list of significant problems in FreeBSD 5.3-RELEASE, it would seem irrational to recommend that anyone switch a production server from 4.x or any previous known-working 5.x release to 5.3. Just the same, the FreeBSD project maintains a migration guide for this purpose.

A lost lead

FreeBSD 5.x enjoyed an excellent head start in the fully 64-bit AMD64 operating system arena, but now trails the pack, with only Windows XP 64-bit behind it in speed and completeness. While 64-bit GNU/Linux in the form of SUSE, Red Hat, and Gentoo have all achieved a reasonable level of accomplishment (and Debian is on its way), FreeBSD 5.3-RELEASE did not add any long-awaited features, such as full 32-bit FreeBSD binary compatibility and 64-bit Linux binary compatibility. Linux 32-bit compatibility is also not natively available, but as usual there is an unofficial, not-yet-committed hack to get it to work. In addition, there is a severe reliability problem with systems that have more than 4GB of system memory, which is a limit meant to be broken by the AMD64 architecture. After having used FreeBSD 5.2.1-RELEASE for AMD64 on an Asus K8V Deluxe AMD64 workstation for several months, we've found 5.3-RELEASE to be unusable on the same machine. Due to the driver problems with the onboard network adapter as mentioned above, this test machine cannot even be properly used with the i386 edition, essentially forcing a downgrade to 5.2.1-RELEASE.

Improvements since 5.2.1

So far we've only focused on the negative parts of FreeBSD 5.3, but there are a few significant improvements over the previous version:

  • Windows NDIS binary drivers are now natively supported in the kernel; this means better wireless NIC compatibility
  • GCC is now at 3.4.2, Binutils at 2.15, and GDB at 6.1. Also, has been upgraded to 6.7, GNOME to 2.6.2 and KDE to 3.3.0
  • There have also been several bug fixes and security patches since the previous release

A mediocre release

While the FreeBSD team seems to have accomplished some of its goals for 5-STABLE, they have also introduced a number of critical bugs. Where FreeBSD used to be a highly usable, reliable, and scalable operating system, the last three releases have been increasingly substandard, culminating in a hardly usable operating system on our test machines. The FreeBSD development team has a tradition of writing good code and maintaining a high-quality operating system. Unfortunately, FreeBSD 5.3-RELEASE lends little credence to that reputation.

Project leader Scott Long's release announcement claims that the team focused especially on bug squashing and testing, but considering all of the problems we encountered on our systems (and the fact that we reported one of these serious problems on the mailing lists during the release candidate testing), Long's assertion seems optimistic at best. Here's hoping that the FreeBSD team gets its act together politically and technically, and reclaims its reputation for excellence in operating system design and development.

Purpose Operating system
Manufacturer The FreeBSD Project
Architectures i386, IA64, Alpha, PC98, SPARC, AMD64
License BSD
Market Web and mail servers, but it's also useful as a desktop or workstation operating system
Price (retail) Free to download, or you can help support the project by purchasing a CD set
Previous version 5.2.1
Product Web site Click here

Jem Matzan is the author of three books, editor-in-chief of The Jem Report, and a contributing editor for OSTG.


  • BSD
Click Here!