I’ve used linux for a long time. Like, “installed Debian 3.0 from floppys” long time. I ran Mandrake 8, Lycoris, Slackware (again, from floppys), Gentoo, Ubuntu from its initial release on Canonical CDs. I like it. But it’s gotten complicated.

Enter the Daemon

I came across FreeBSD sometime in 2006, and I loved it. It performed better on my (dual-boot) laptop than Linux, had a much more responsive console, and almost all the software I used. And it followed the Filesystem Hierarchy Standard and kept local modifications separate from the base system. The only thing it missed was Wifi drivers. So back to Linux.

I used OpenBSD at work a few years later on a pair of redundant firewalls. OpenBSD had just released the CARP/PF/pfsync combo in the base system, and we used it on two deprecated Pentium-III desktops for our corporate firewall. They “just worked”, and I think we very nearly had 100% service uptime. Like FreeBSD, it also followed the Filesystem Hierarchy Standard and kept the local changes out of the base system. A few years later, we deployed a pair of FreeBSD systems to act as a layer-two VPN between office locations, and just like the firewalls, they “just worked”.

O(n^2) Complexity vs. O(n) Complexity

I used Debian and Ubuntu for a while, popping in to try FreeBSD at intervals. I carried my Home Folder between distributions and laptops, and every installation and version update performed about the same. Until about 2016. After 10-12 years, configuration cruft accumulates and eventually you just need to start fresh. I did a clean install of Ubuntu, and … couldn’t get my packages back. I couldn’t figure out what was going on with systemd, and snap/flatpak were bonkers. I tried Debian, but it was almost the same thing.

The configuration changes under the hood for mainstream linux had gotten more complex over time, but I had been able to ignore them via upgrading in place. A clean start brought all that complexity to the surface, and I didn’t like it.

OpenBSD was not this complex. It was a bit less intuitive to set up, but once the learning curve of basic system administration tasks was done, everything was simple, clean, and predictable. Performance wasn’t as good, but I fixed that with hardware. ;-)

O(1) Complexity

I’ve been using OpenBSD exclusively since the 6.0 release. I’ve had to learn one new sysadmin thing since in the last five years (WPA flag for ifconfig), and … that’s it.

It just works.