Organizations that want to use a public Unix variant have two solutions from which to chose: Linux and BSD. The much talked about Linux camp contains a variety of distributions that include different utilities and tool sets. The same is true of the less frequently covered BSD camp. This article compares and contrasts the four main BSD variants and offers recommendations for both server- and desktop-based solutions.
BSD History
Ever wonder exactly how FreeBSD differs from Open BSD, or why Mac OS X is considered a BSD? We overview the four main BSD distributions and offer recommendations for both server- and desktop-based solutions.
There are four main BSD variants. Three of these (FreeBSD, OpenBSD, and NetBSD) are totally free; the fourth (Mac OS X) is technically the core part of an operating system that most wouldn’t even consider a BSD variant. To understand the differences between the various versions, let’s briefly recap the history of BSD to understand how the different versions have developed.
Contents BSD History Common Features FreeBSD NetBSD OpenBSD Mac OS X Choosing a Desktop Solution Choosing a Server Solution |
Today’s BSD variants are open source versions of the original AT&T Unix operating system. In fact, they all come from the Unix developed at the University of California Berkeley, and BSD is actually short for Berkeley Software Distribution. A significant part of the original BSD code was based on the AT&T Unix code, which wasn’t free. Through efforts on the part of a few key members of the original BSD development team, such as
William F. Jolitz, the final parts of the code were developed under an open source license and produced 386BSD.
In 1993, 386BSD was forked into two of the main versions we know today: NetBSD and
FreeBSD. They were formed with different aims and goals. Not surprisingly, each has its own history. OpenBSD, the third variant, arrived in 1996 and was developed specifically to address some of the security concerns in the other variants.
The BSD incorporated into Mac OS X is known as Darwin. It is available as a completely
separate component. Darwin itself is derived from the BSD layer of the NextStep
operating system, developed by NeXT, the company set up by Steve Jobs after he left
Apple in the 1980s. Technically, Mac OS X is based on the FreeBSD core, with OS X 10.3
based on FreeBSD 5.x. It is, however, extremely customized beyond the base
BSD code. The key benefit with Mac OS X is the Aqua GUI that allows OS X to operate like
the original Mac OS operating system but still have all the benefits and flexibility of an
efficient BSD kernel.
Common Features
Like other Unix variants, the four BSD distros provide similar basic functionality. All contain the following core components:
- Kernel — Pre-emptive, multitasking with job control
- Security — The basic log-in and authorization system
- Shell Interface — The Bourne, C, Korn, and other third-party shells
- Networking — Adherence to the TCP|UDP/IP standard and support for all the base protocols (e.g., finger, telnet, NFS, and FTP)
- Third-Party Networking — Support for Apache, Mac file sharing (through NetAt), and Windows file sharing (through Samba)
- Base Utilities — Rich, built-in utility list, including awk, cut, paste, sed, and ed
In addition, because it is a Unix-like operating system, most of the other tools, utilities, and systems, such as Perl, Python, Apache, MySQL, PostGreSQL, Java, C/C++, work with BSD. However, because it is a less popular Unix alternative than Linux, fewer prepackaged applications are available. Some BSD variants do come with a Linux compatibility package, though, that enables them to execute Linux applications (from the same platform) directly.
BSD systems have a reputation for better reliability than some alternatives, largely because they are developed with smaller, more focused development teams. They also boast a more mature code base, as a significant proportion of the BSD ethos come from the very earliest forms of Unix.
So with all these similarities, how does one differentiate the various versions and choose which to deploy?