FreeBSD Waters Are Easily Waded
FreeBSD: BSD flavor best-known for its focus on performance and security. If you've been tempted to dip your toes in the BSD waters, consider FreeBSD 6.0. The latest version of the venerable operating system provides the rock-solid stability for which FreeBSD is known, along with a host of new features.
FreeBSD is an enterprise-grade operating system that leaves little to be desired. Most people have tried Linux by now, but a surprisingly large number of people have not yet taken FreeBSD for a spin. Now may well be the optimal time to take the plunge, as FreeBSD 6.0 provides the same rock-solid stability for which FreeBSD is known, and also implements some outstanding new features.
First, some background. FreeBSD is derived from the original University of California Berkeley's BSD Unix, which originally came from AT&T Unix. FreeBSD has been actively and passionately developed throughout the years, and it provides a very stable operating system for multiple purposes. New hardware support is being actively developed, and the operating system installs on nearly anything on which Linux can run.
The main difference between Linux and FreeBSD is that FreeBSD is an entire operating system. Linux has many distributions, all of which use the Linux kernel and each of which has its own special utilities and configuration tools to learn. FreeBSD comes with a kernel and all of the basic user programs necessary to run a production server. With every release, all of the programs get updated along with the kernel. With all of the essential programs, including SSH and DNS servers being updated frequently and seamlessly, FreeBSD makes it really hard to forget about potentially vulnerable programs they update when the operating system updates.
The FreeBSD Ports system allows virtually any third-party software to be installed. With more than 13,000 open source software packages in reach, none rivals FreeBSD's ports system.
The FreeBSD Ports system allows virtually any third-party software to be installed. With more than 13,000 open source software packages in reach, none rivals FreeBSD's ports system. Want to install Apache? Simply run "pkg_add apache," and a binary (precompiled) version of the latest stable apache Web server will be installed. More often, people will simply change into the /usr/ports/"package_name" directory and run "make install" to compile the desired software and all dependencies automatically. It works, every time, barring the infrequent occasions when the software's download site is unresponsive.
Perhaps FreeBSD's most notable handiwork is its SMP implementation. Here, the project chose the hard road, re-implementing nearly everything from the ground up. To implement true Symmetric Multi-Processing (SMP), every function must be able to run multiple times, even when another thread is in the same point of execution. When done properly, the scheduler can take full advantage of multiple CPUs. FreeBSD 5.3 introduced a multiprocessor-safe network stack; with 6.0 it delivers a true SMP file system. Now, multicore and multiprocessor machines can used to their full capabilities with FreeBSD.
The scheduler implementation is probably the single most important aspect of an operating system. Starting in FreeBSD 5, the newest development in scheduler-land has been the introduction of the ULE scheduler. This is a constant-time implementation, meaning it runs as fast with 2,000 queued tasks as it does with a mere 100 tasks to manage. Interestingly, Linux implemented a constant-time scheduler at roughly the same time as FreeBSD. The initial release of the ULE scheduler was unstable and not recommended for use. It still isn't the default in 6.0, but instability issues have been mostly worked out to the point that it is quite usable in production environments.
Although not strictly a server concern, wireless support is also an important aspect of modern-day operating systems. FreeBSD 6.0 introduces a few additional wireless drivers. Since the operating system is a complete system, there's no danger of a driver failing to attach to the device of choice. If a supported card is inserted, it instantly works, every time. And if supporting most wireless chips isn't enough, FreeBSD also implements the Windows NDIS interface in the kernel, enabling users to install windows drivers for pseudo-chip wireless cards. Also new in version 6.0 is support for the WPA wireless security protocol. This is particularly key for organizations that need a truly secure wireless setup.
FreeBSD's installer doesn't have a graphical interface, but it's still quite easy to use. To install FreeBSD on a dedicated hard drive, you can practically choose the default options all the way through, just like all the graphical operating system installers out there. If you want to customize it, be sure to read the handbook first. The FreeBSD manual (handbook) is one of the most complete documentation guides available for any operating system. Every section in the handbook has examples of common tasks, such as custom partitioning schemes and setting up a firewall. The install process can be performed with a pair of floppy disks (with network access), a full CD-ROM, or via PXE boot. When installing the operating system "fresh," the installer isn't great looking, but it provides a great preview of what the rest of the operating system is all about: trim, efficient, and very intuitive.
If you're running an old version of FreeBSD, upgrading the base system and kernel to the latest release is a mere five commands. After the source directory is updated with the latest source files via "cvsup," the administrator simply runs "make buildworld" in /usr/src. This builds all of the base system, including openssh, gcc, and everything required for a FreeBSD server to run. It can take quite a long time the better part of a day on a slower computer. After completion, "make buildkernel" and "make installkernel" will build and install the new kernel. No further manual actions are required to install kernels in FreeBSD. A quick reboot into single user mode, and you're almost done. Running "make installworld" installs the base system that was recently built. The final step is to run "mergemaster" to install the new configuration files.
The upgrade process might be daunting for some, but it's really straightforward if the instructions are followed. An alternative to the lengthy compile process is to download the latest release's ISO and use the CD-ROM to perform a binary "upgrade install."
FreeBSD is known for its focus on performance and security, and it does both very well. Industry leaders have used FreeBSD servers for ages now. FreeBSD also provides a responsive and pleasing desktop environment, using X.org's X server and Gnome, KDE, or any desired window manager. Also, it's both free and Free. You can take FreeBSD source code and do anything you want with it, including selling it while keeping the source code secret. But don't forget the most important part, it's extremely fast, stable, and easy to use.
Pros: Fast; Easy to use when the excellent documentation is followed; Cutting-edge features compete with all other open source operating systems; Strictly managed to provide the best interoperability; free of charge.
Cons: Daunting for new users; Install process can be quite lengthy and confusing if lots of third-party packages are downloaded in the beginning.
Reviewed by: Charlie Schluting
Original Review Date: 12/8/2005
Original Review Version: 6.0