Despite its age, it still pops up in places you wouldn’t expect. If you use an Apple device, chat on WhatsApp or watch a movie on Netflix, you’re interacting with FreeBSD. Here we take a look at this Unix-like operating system.
FreeBSD has its roots in the original BSD version of Unix that was first created in 1977 by Bill Joy, who would later co-found Sun Microsystems. We’ve covered the history of BSD in general in detail in another article.
FreeBSD, as well as all the other major BSD variants, including NetBSD, are descended from 386BSD, the first BSD version to run on PC hardware. For various reasons William Jolitz, the creator of 386BSD, stalled on the project. Other groups stepped in with their own modifications, known as "patchkits." The group that would become FreeBSD was one of them.
A lawsuit by AT&T asserting copyright over the BSD code distracted the community, but the terms were worked out and FreeBSD moved to the BSD 4.4 "Lite" codebase that had no AT&T code in version 2.0.
FreeBSD got a lot of attention in the ’90s, being used to run a number of ISPs and websites. Yahoo was a notable user. The current version of FreeBSD is 10, and it’s still going strong, even as the computer world has changed.
FreeBSD has a number of features that make it a favorite of users.
FreeBSD users love to tout its stability. While FreeBSD, thanks to its popularity in server environments, doesn’t crash very often, its commitment goes much deeper. As the FreeBSD advocacy page puts it: "It means that upgrading the system doesn’t require upgrading the user. Configuration interfaces do change over time, but only when there is a good reason. If you learned how to use FreeBSD in 2000, then most of your knowledge would still be relevant. Backwards compatibility is very important to the FreeBSD team, and any release in a major release series is expected to be able to run any code — including kernel modules — that ran on an earlier version. The entire base system is developed together, including the kernel, the core utilities, and the configuration system, so upgrades are usually painless. Included tools like mergemaster help update configuration files with little or no manual intervention."
At the same time it prizes stability, FreeBSD is also on the cutting edge in some areas, namely the ZFS file system and the LLVM compiler, as seen below.
While ZFS is not exclusive to FreeBSD, as it was originally developed by Sun (now Oracle), it’s still the biggest open-source implementation, as ZFS has some licensing issues that the Linux kernel developers found objectionable.
ZFS has a number of advanced features, including protection against data corruption. Another major feature is storage pools, which is an abstraction layer on top of the physical drive. Storage pools can be subdivided into block devices, hard drive partitions, or, as, Oracle recommends, using entire drives. For a desktop or small office/home office server, an entire drive will be sufficient.
ZFS also uses some sophisticated caching to boost performance.
LLVM and clang
While a compiler won’t effect most users, it’s essential for developers, as the rest of the system couldn’t exist without it. Clang is a C compiler, as the name suggests, that’s a front end to LLVM. It was originally developed by Apple (more on their relationship to FreeBSD later). FreeBSD is using it in favor of GCC, which is ubiquitous in the open-source world. Clang touts faster performance over GCC.
LLVM, or Low Level Virtual Machine, is an attempt to build a compiler out of small components. Despite the name, it’s not actually a virtual machine. It’s also not limited to C, but can in theory support any language. It just happens that C is the most widespread language on Unix systems.
Ports and Packages
One of the strengths of modern Unix-like systems is package managers, which make installing software much easier. They’re such a good idea that both Windows and Mac OS X copied the idea with their respective software stores.
FreeBSD has its own version that comes in two flavors: ports and packages. Ports are typically compiled, which makes the compiler more important in the BSD world, while packages are just precompiled binaries. The latter are suited for larger software programs like desktops that are time-consuming to compile on most systems.
Jails are a unique security feature on FreeBSD. A jail allows administrators to isolate a process from the rest of the system, with a view of its own filesystem. The advantage of this is that if an attacker gets into a system, it will limit the damage a malicious user will do.
A similar idea is starting to take off in the Linux world, particularly with Docker.
Another distinguishing feature of FreeBSD, which is common to the other branches, is its license. Unlike the GPL, while it’s still an open-source license, it’s possible to make changes and release them without having the derivative program under the same license. This makes FreeBSD and NetBSD particularly attractive for embedded systems development.
Who Uses FreeBSD?
FreeBSD has a lot of uses today, despite its age. There’s a lot more embedded use, such as in routers and other devices. The derivatives mentioned below are also excellent examples. Some very big names, including Netflix and WhatsApp use FreeBSD. One of WhatsApp’s developers made a large donation to the FreeBSD Foundation. The Playstation 3 and Playstation 4 consoles are also based on FreeBSD. FreeBSD is everywhere.
- FreeNAS is a spinoff that offers network attached storage. It really shows off what ZFS can do.
- PC-BSD is FreeBSD’s answer to Ubuntu, offering an easy-to-use desktop based on FreeBSD.
- Mac OS X and iOS are based in part of FreeBSD, but only the "userland" utilities, which you probably won’t see unless you use the command line. Still, if you’re reading this on an Apple device, FreeBSD is making it possible behind the scenes.
Jordan Hubbard, CTO of iXSystems and a co-founder of the FreeBSD project, recently gave a talk on the future of FreeBSD. He noted how the computing world has changed its focus from desktops to cloud and mobile technologies, noting how there were many more virtual PCs than physical ones these days. FreeBSD has shifted to a more "covert," embedded role.
There’s a need for a centralized place for OS and communications data, and an event notifications system. This is similar to the controversial systemd project in Linux, but as systems get more complex, FreeBSD will probably end up doing something similar.
Whatever form FreeBSD takes, it will still be around for some time, and well worth checking out to see if it makes sense for you.