Linux isn't the only open source operating system around. The Berkeley Software Distributions have been around longer and offer many compelling features of their own. See how the "other half" lives in this introduction to the BSD variants.
Sometimes, we get a little full of ourselves in the Linux community. We portray ourselves as the elder statesmen, the users of the oldest open source operating system around. Except, of course, we’re not. The oldest open source operating systems are the Berkeley Software Distribution (BSD) operating systems, including FreeBSD, NetBSD, and OpenBSD, the commercial BSD/OS, and Apple’s BSD-based MacOS X.
What’s so great about BSD? Plenty. The old daemon might even teach the penguin a thing or two. Read on, neophytes.
A Brief History of All Things Berkeley
Back in the 1970s, BSD was developed at the University of California at Berkeley. At the time, it was the cutting edge of Unix operating systems. Indeed, it’s due to the BSDs that Unixes widely support TCP/IP. This network protocol would first lead to the creation of the Internet, and today, to almost all local and wide area networking.
In the early 1990s, though, BSD had run into a situation that we in the Linux world know well. Then, a major company, AT&T, via its Unix Systems Laboratories (USL) subsidiary, claimed ownership of most of the BSD source code. Specifically, the USL was going after Berkeley Software Design, Incorporated (BSDI, now owned by Wind River), makers of what’s now called BSD/OS. Then, as now, the Fear, Uncertainty, and Doubt (FUD) flew fast and furious. The result of that case was that first BSDI beat the initial USL injunctions. Afterwards, Novell bought USL, and rather than continue to pursue the case, then Novell CEO Ray Noorda famously declared that he’d rather compete in the marketplace than in court.
(Ironically, Noorda would help fund the creation of Caldera Systems, which in time, would once more end up with the Unix source code, and change its name to SCO. While SCO has made threatening noises at BSD, they’ve devoted most of their time to making Linux users unhappy. Alas, there’s no way that that SCO CEO Darl McBride will compete in the marketplace instead of the courthouse.)
Afterwards, the BSDs split, going in several different directions. You can spend hours arguing over exactly why this happened, but the “Reader’s Digest” version is that the creators of BSD all had different ideas on the next, best direction for the operating system. So, today, we have five mainstream BSD variants.
The BSDs share superior security, scalability, and networking. From a distance, except for MacOS X, the variants look very much alike. But close up, each one has its own strengths.
Unfortunately, many people, even those who are operating system savvy, don’t know the BSDs. Obscurity doesn’t mean a lack of success, though. BSD has become a quiet success. MacOS X is the ultimate Unix-style desktop, and the BSDs are found pushing network requests at some of the biggest Web sites around. Indeed, Yahoo, one of the biggest of the big, runs on FreeBSD.
Apple MacOS X
For some reason, many Unix/Linux/BSD users seem slightly ashamed of MacOS X. Perhaps it’s because Apple built a great desktop Unix by going their own way. You’ll find none of the KDE/Gnome debates that eat up bandwidth in Linux discussion lists in Apple circles. Why should there be? The very best Linux interfaces pale besides the glory that is Aqua, the MacOS X user interface.
MacOS X, of course, is the leading Unix desktop operating system of all time. It may not look like a Unix variant to you, but underneath its glossy exterior lays an operating system based on the 4.4BSD-Lite2 Open Source distribution and the Open Software Foundation Mach 3.
MacOS X, while based on open source, isn’t open source itself. Darwin, its core operating system, is open source. You can download one version of it from the Gnu-Darwin home page at http://gnu-darwin.sourceforge.net. However, for MacOS X proper, there are many layers of proprietary software such as Cocoa, Quartz 2D, QuickTime, and OpenGL implementations for graphics, so you simply cannot download Gnu-Darwin and start running MacOS X on an x86 system.
Wind River’s BSD/OS 5.0 Internet Server Edition (http://www.windriver.com/products/bsd_os/index.html) is a BSD open source operating system that’s meant mostly, as the name says, for Internet services. As such, it includes built-in IPV6 support and hardened security. It also includes support for Linux applications.
The technical strong point of BSD/OS is its Symmetric Multiprocessing (SMP) capability. The other BSDs do far less well with multiple processors. It is, however, confined to the x86 CPU family.
BSD/OS 5′s real advantage is that it’s the only server-oriented BSD distribution that comes with commercial support. Support is available for the others, but you’ll have to hunt around for it. Thus, if you’re in a company that won’t even consider an operating system unless it has corporate support behind it, BSD/OS is the BSD variant for you.
FreeBSD 5.1 (http://www.freebsd.org) is the most well known of the BSDs, and there’s a reason for that: it’s one of the operating systems of choice for web site administrators across the world. Besides Yahoo, major web hosters like NTT/Verio, InfoSpace, and DataSync rely on FreeBSD. Using FreeBSD, even more so then in Linux, a single administrator can run tens of thousands of sites.
Another FreeBSD plus for the “net set” is its extremely fast TCP/IP stack. FreeBSD delivers TCP/IP-borne network services faster than any other operating system on the same hardware.
Besides all the other usual BSD/Linux goodies, such as your choice of the KDE or Gnome interfaces, FreeBSD comes with an interesting concept called jails. A jail is a virtual machine that runs insecure Unix services. So, for example, you can run Berkeley Internet Name Domain (BIND), OpenSSL, or sendmail in individual, private jails. Then, if things go wrong with any one of those servers, a cracker’s ability to use them to attack the rest of the system is seriously limited. Jails are a novel concept that’s remindful of trusted computing (TC) initiatives, but it doesn’t come with the extraordinary hardware and software costs of most TC schemes.
FreeBSD also has the most public support of the BSDs. One excellent source of FreeBSD books and information is the FreeBSD Mall (http://www.freebsdmall.com/cgi-bin/fm), formerly known as the Walnut Creek CD-ROM.
NetBSD’s 1.6.1 (http://www.netbsd.org) claim to fame is that it runs on anything. No, seriously, almost anything. Amigas? No problem. NetBSD ran on Playstation IIs long before Linux got there. AMD Opteron? Yeah. NetBSD was ported there back in 2001 when the chip was barely alpha. If you know the operating system business, you can probably guess where this is going. Yes, NetBSD is the BSD of choice for embedded systems.
While you can run NetBSD as a desktop operating system — indeed, there was a commercial NetBSD desktop offered for a brief time — or as a server, the real name of the NetBSD game is that you an use it on almost any platform to write to almost any other platform.
NetBSD, as you might guess, is also very easy to port to other architectures. NetBSD designers manage this trick because of its Modular Portability Layer (MPL). The MPL serves as a hardware abstraction layer (HAL) that completely isolates drivers from the underlying hardware platform. Programmers can write to the MPL instead of the hardware for much faster operating system ports. NetBSD developers claim that NetBSD can be ported in a quarter of the time of other operating systems.
Also, like OpenBSD, NetBSD’s developers have focused in security, but not to the same extent. Portability is their Holy Grail, and then security.
NetBSD isn’t the easiest BSD to install. While an old Unix hand will have no trouble with it, if you think Red Hat 9 requires attention to install properly, this isn’t the operating system for you.
There is, however, a commercialized version of NetBSD from Wasabi Systems (http://www.wasabisystems.com) that’s easier to manage. The Wasabi version is meant — no surprise — for embedded system developers. With it, you can install NetBSD and an application on systems with as little as a 400K memory footprint.
If security is first and foremost in your mind, OpenBSD 3.3 (http://www.openbsd.org) is the operating system for you.
Unlike other operating systems that try to create security by constantly adding patch band-aids, OpenBSD was built from the start to be secure. How? By constantly auditing the source code for potential security problems.
For example, buffer overflows, the proximate cause of most Windows problems, are constantly audited for in OpenBSD. As another example, take OpenBSD’s basic install: most operating system default installs add everything-and-the-kitchen-sink. In stark contrast, OpenBSD takes a “secure by default” approach: all non-essential services are disabled. Other operating systems, such as Windows Server 2003, finally took up this basic security step, but OpenBSD led the way.
OpenBSD is also the only operating system that incorporates encryption at every step possible in the operating system. It also makes use of many encryption chips and devices to improve overall system security.
On the other hand, OpenBSD probably has the least support of the BSDs. That may be in part because it’s hard enough to build an operating system; it’s harder still to keep constantly re-enforcing security at every possible level. Nevertheless, if you want security in your operating system, OpenBSD is your best choice, no ifs, ands, or buts.
Licenses and Other Issues
Developers’ main reason for considering BSD is the license. Unlike the GPL, which forbids you to make changes to the source code unless you release it to the community, you can customize BSD source code, keep it to yourself, and just sell the binaries. Thus, for developers who like the traditional software sales business model, BSD, not GPL, is the open source license of choice.
Users who’ve never felt quite at home with the GPL also tend to feel more comfortable with BSD. They feel that there’s less chance of them going astray with BSD if they make minor changes to the source code for in-house only use.
With all this going for BSD, why haven’t you heard more about it?
There are several reasons. For starters, Linux has always had a strong, centralized group of developers with Linus at the helm. In contrast, the BSDs have all gone in separate directions, and both individually and collectively haven’t attracted a tenth as much attention from either developers or the public. BSD fans hate this, but it’s simply the truth. There are dozens of Linux print and online publications and barely any for BSD. After all, you’re reading Linux Magazine and not BSD Magazine.
As time’s gone by, the Linux advantage has snowballed. Linux, because it has far more developers, simply beats out the BSDs when it comes to native device and independent software vendor (ISV) support. In short, you know that Linux will almost certainly run on your machine, and that you have a wide assortment of programs to choose from. With BSD, you must be much more aware of hardware compatibility, and have far fewer programs to choose from. This is especially true of desktop applications.
Best on Servers
On the other hand, on the server side, you have all of the typical office and ISP programs at your beck and call. Like Linux itself, except for MacOS X, the BSDs work best as servers rather than desktops.
Technically, the BSD authors argue that their operating system is superior. And, while arguing that point is largely a waste of time, there can be no question that BSD has some distinct advantages. When it comes to security, the open source BSDs, especially OpenBSD, are the best in the business. When it comes to the desktop, MacOS X is the créme de le créme.
For other purposes, though, Linux remains the open source operating system that most people still choose first.
Steven J. Vaughan-Nichols is a long-time Unix guru and technology writer. He can be reached at firstname.lastname@example.org.