
This article was originally written for publication in a trade magazine about the BSD family of operating systems; it’s been updated slightly since then.
When a friend and I started our technology business 11 years ago in 1997, we didn’t choose FreeBSD, it chose us. But we’re sure glad it did, and we came to build our company on FreeBSD.
We started out with a focus on graphic design and website development. We were small, starting out in a college dorm room, but with high aspirations about what we could do for the world. It was only after a few projects that we realized we needed a place to send our clients for hosting the websites we had just built for them. When we asked a friend who was involved in running a small local dial-up Internet Service Provider where to host, he offered us some space on one of their servers, where they were already hosting a number of websites.
We got our FTP username and password, and we were off and running. We eventually co-located with that local ISP, and partnered with them enough that they gave us shell access on that shared web hosting server, and eventually even root access. It was a FreeBSD box running version 2.1 of the operating system.
When we got big enough to need our own server for site hosting, we didn’t spend too much time looking around at the options. The consensus at the time (1998 now) was that Linux, FreeBSD and NetBSD were all basically the same, and that it was mostly a matter of preference and what kind of commercial support was available to help you through any rough patches (though the license wars certainly raged on even then). With our friends at the ISP sitting just on the other side of the bookshelves, we knew we had some of the best FreeBSD product support we could hope for.
So we built our own server and put FreeBSD on it. I still remember the process of booting with a single floppy disk and then downloading the OS over the network; on our first install we had to just let it run overnight and then come back the next day to complete the install. If the network went down or the disk didn’t behave right, hours were lost. But eventually we had a system up and running, and thus began our lives as FreeBSD system administrators.
The floppy-boot-and-download system worked fine for installation, but upgrading with it was a whole other story (especially after the shift to the two-floppy requirement for 3.1 and above). To take a production system down for the evening wasn’t completely ridiculous back then, and so we made it through the long slow downloads, but we realized it wasn’t a sustainable or desirable approach, so we started investing in the FreeBSD installation CD-ROMs. We figured that the money we were saving by not using Windows more than justified the cost, AND they came with great “powered by FreeBSD” stickers.
In 1999 I was happy enough with FreeBSD as a server platform that I decided to try it on the desktop. This was perhaps the first time we encountered some of the things FreeBSD wasn’t yet good at. I’ll spare you the details of the hours spent trying to configure the right packages and X-Windows configuration variables just to be able to login and use the system, let alone be productive with it. But when I then instead tried a Linux distribution (RedHat, I think), it went quickly and smoothly, and I couldn’t hide my disappointment that FreeBSD wasn’t yet up for the challenge (or at least I couldn’t get it there).
In 2000, our business model had largely shifted into building database driven website applications, and the expectations for what features came with a web hosting service had expanded significantly. We were no longer just providing web hosting with Apache on FreeBSD – we knew we needed to support an expanding reliance on the PostgreSQL and MySQL database systems, the qmail and vpopmail e-mail systems and other dedicated services. We starting building new servers as dedicated single function boxes, and in each case, it was a no-brainer to install FreeBSD. Our use of the ports system to turn it into just the kind of box we needed saved us lots of time along the way.
Over the years and still today, the scope of services we use FreeBSD to provide has grown even more. We’ve had multiple shared web servers, a mail “toaster” running qmail, an intranet server with related file sharing protocols, a firewall and router (diskless with PicoBSD), and a backup and monitoring system, among others. As we’ve transitioned into more “mainstream” hosting platforms like our use of cPanel, FreeBSD is still powering it behind the scenes. In only a few cases have we had to even consider an alternative OS, and it was usually because of proprietary hardware needing Linux-only drivers, or the preexistence of an embedded system we didn’t want to mess with.
We’ve come to understand that paying for those installation CDs was the least we could do to support the FreeBSD project. We’ve participated in mailing list discussions and contributed to bug reports, and we’re now regular donors to the FreeBSD Foundation. But we still know that we’re getting a great deal compared to what other hosting companies can spend on licensing fees alone for their closed-source, proprietary hosting platforms.
You may not necessarily need to hear that FreeBSD is a reliable platform for running Internet services. But I think it’s important to remember that the software we use and labor over exists as more than just lines of code or bytes on a disk. Software like FreeBSD is affecting the way that people live their lives every single day, whether it’s supporting businesses like ours, enabling hobbyists just getting into open source software, or any of the thousands of other “real world” roles it plays. For much of the world, choice of operating system is an arbitrary decision to make. We believe that for us, it’s made all the difference in building a successful business.