Here I sit, watching a freshly installed FreeBSD box run through cvsup on all ports, to be closely followed by a new kernel compilation. As the output flies by in the xterm, I find myself wondering why I don't run into more FreeBSD in the world.
The truth is that I've been using some form of BSD since 1993 or so (the days of BSD/386). A foundational server that I've run since 1995 used BSDi initially, transitioning to FreeBSD back in the 3.0 release days. I can't contemplate using any other OS for this box and the myriad tasks it performs. We're not talking about a system that sits idle most of the time; this box generally deals with 250,000 to 300,000 emails a day (mostly spam, which produces a heavier load than actual mail delivery), and it serves up DNS, Web, and SMTP/POP/IMAP services for dozens of domains. It generally hovers at a load of 0.50 with the occasional spike.
Right up until last week, this FreeBSD box had an uptime of 1,057 days, or nearly three years. This streak was broken only due to a UPS failure during a brief power outage. It rebooted with nary a hitch. However, this event caused me some concern over the age of the hardware and the install itself, since it's still running a patched 6.1 release on a 10-year-old Compaq Evo W6000 workstation with a couple 1.7GHz Xeon CPUs and 2GB of RDRAM. (Yes, that's right -- Rambus.) And this box has been rock-solid stable the entire 10 years, with only a disk failure or two in the middle.
I attribute most of that longevity and stability to the OS. Sure the hardware plays a part, but make no mistake: FreeBSD is a fantastically stable and reliable operating system. In fact, all the *BSDs are: NetBSD, OpenBSD, TrustedBSD, and the like. As we know, BSD forms the foundation of OS X, albeit with the Mach kernel. There's a reason for that -- stability, reliability, and the forgiving licensing.
Beyond the stability, FreeBSD was way ahead of Linux with significant features like DTrace and ZFS. In fact, Linux still doesn't officially have native ZFS support, though Lawrence Livermore National Laboratory is working on exactly that through a contract with the DOE. Then there's the matter of FreeBSD's pf firewall that is much simpler and more powerful than Linux's iptables, and the BSD TCP stack is generally known as the reference implementation, and it's used in many internetnetworking speed tests for this reason.
A wide variety of embedded systems and appliances leverage some BSD variant, from open source projects like FreeNAS, to EqualLogic SAN Array controllers. EqualLogic uses NetBSD, though, not FreeBSD. NetBSD's licensing model, performance, and extreme portability have brought it everywhere from SAN arrays to network switching to the International Space Station, yet it enjoys a fraction of the recognition that Linux has. Oh, and it runs Apple's Airport Extreme and Time Capsule.
But back to FreeBSD. There used to be a saying -- at least I've said it many times -- that my workstations run Linux, my servers run FreeBSD. Sure, it's quicker to build a Linux box, do a "yum install x y z" and toss it out into the wild as a fully functional server, but the extra time required to really get a FreeBSD box tuned will come back in spades through performance and stability metrics. You'll get more out of the hardware, be that virtual or physical, than you will on a generic Linux binary installation. (Note: Yes, you can use pkg_add to add binary packages à la .deb and .rpm, but where's the fun in that?)
Speaking of virtualization, build up a single FreeBSD instance and clone away. You get the benefits of FreeBSD with the ramp-up speed only virtualization can provide. It's a win-win.
Sadly, though, I don't expect to see FreeBSD making significant inroads against Linux or Windows. Aside from being Unix-like, it's a very different beast from, say, Red Hat Enterprise Linux. Linux admins who have never touched a BSD box will find themselves in what may appear to be a fun-house-mirror OS where things are not quite as they seem; it can be frustrating to grok the concepts behind things like /etc/rc.conf and the ports collection. It's easy enough to try, though: Just download a bootonly ISO of FreeBSD 8.2 from ftp.freebsd.org (32-bit or 64-bit) and use the ftp-driven installation. It's not as pretty as the Red Hat Anaconda GUI, but it's still quick and easy.
Once you've ridden the learning curve and spent some time actually getting to know the innards, you may decide you'd be better off running FreeBSD on the next set of Web servers, SMTP relays, or application servers you build. FreeBSD is funny like that. I blame the Beastie.
This story, "Why aren't you using FreeBSD?," was originally published at InfoWorld.com. Read more of Paul Venezia's The Deep End blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.