Beautiful BSD

Published on 2022-03-03 by Andrei

I get a lot of questions from people when I tell them that I use BSD, and rightfully so. The BSD operating systems occupy a tiny space in the general operating system marketshare. Even in the server-space where even somewhat niche desktop operating systems like Linux thrive BSD is still pretty rare. So I've decided to create this blog post to clear out some of the misconceptions and myths about what BSD actually is, as well as compare it to other operating systems.

What is "BSD"?

Despite what some people think there's no single BSD operating system, but rather, there is a collection of different operating systems that share certain characteristics and can be traced back to the original BSD operating system that existed in the mid to late 80s. I've personally dabbled in many of these operating systems, including OpenBSD, NetBSD, and FreeBSD. The latter which I use to power this very website! Beginners tend to call these different operating systems "distros" as they mistake them as distributions of a single BSD operating system, which I think ignores what makes these operating systems special.

What makes the BSDs different from Linux

At first glance the BSDs look extremely similar to Linux. You have the same window managers, web browsers, and desktop environments. But the BSDs are fundamentally different from Linux in several ways.

Distribution model

Most Linux distros these days ship their base system as a set of modular packages which can be uninstalled with the system package manager. The BSDs are more similar to a distro of the likes of Slackware, where the base system is static and all the programs that exist in the base system remain completely untracked by the package manager. This means that it's usually much harder to accidentally uninstall a system critical package, but also that the base system feels more integrated and more organized. This is especially true in BSDs like FreeBSD and NetBSD, which even separate base configuration files from package configuration files. So as you install different packages your /etc directory remains pristine; a very cool feature!

Different BSDs also have a variety of cool and interesting features. I especially like OpenBSDs kernel and userspace security features, and the several OpenBSD specific safe alternatives to C functions that make general userspace programs much safer such as pledge(3), unveil(3), strlcpy, and strlcat(3).

NetBSD has some very cool kernel features like kernel modules written in Lua, XEN virtualization support; The operating system itself is very portable (albeit not as much as it used to be), and even runs on some graphing calculators and 30 year old computers.

FreeBSD is the most popular BSD operating system and has some very convenient server features such as jails (secure chroots), and has a capable Linux binary compatiblity layer that allows you to run certain proprietary Linux programs.

Closing thoughts

If you're looking into trying something different than what you're used to, and exploring a different side of the open source ecosystem, then I highly recommend you try out one of the BSD operating systems.

NOTE: Because BSD operating systems occupy a much smaller space in the desktop operating system marketshare you'll have a hard time running proprietary programs like spotify or netflix, and you'll most likely be stuck to the web version of Discord.