Adventures in BSD

What I learned from using FreeBSD as a main OS for a summer

2026-09-18 f88f678

So the subtitle makes this sound recent, but the summer I am referring to was actually last year (2025), I therefore don't remember exactly what set it off, but I had picked up a manuscript written by the original inventors of Unix, and in general was absorbing as much information I coule in the usual way that I do when I develop a sudden interest in something.

Somewhere in there, I got genuinely curious about a family of operating systems I had only ever heard or talked about, but never actually used; BSD.

The result wansn't me switching to a BSD and moving to a cabin in the woods far as far as possible away from systemd. Instead the result was that I went from trying to install one standard OS on most computers, to ending up with a mixed network with 4 different operating systems for various use cases. Running BSD taught me a different way of thinking about the role of an operating system.

Key takeaways from the experiment

Running both FreeBSD and OpenBSD taught me a lot more than the following list, but a lot of those points are repeated all over the web, here are the ones that I feel are less talked about:

  1. I have used a FreeBSD fork without ever knowing it. You probably have too.
  2. ZFS is not just a cool storage filesystem for NAS boxes, you can install your OS on a "pool" of hard drives and infinitely replace them without ever having to reinstall the operating system. Hydra OS!
  3. There are advantages to having focused operating systems rather than general purpose ones.
  4. The pledge() to provide the source, is much more useful when there is only one codebase for the whole OS.

Wait, what is a BSD?

If you don't know what a BSD is then you will find value here, if you do, I am very sure you will still find value in nitpicking how I describe this but, comments are email only, so lets see if that even happens.

Anyway lets first start with the obvious: what do I mean by "A BSD"? Well you see many cycles around the Sun ago, Bell Labs produced an operating system called Unix, this OS was licensed to some small community colleges in the US that nobody has ever heard of, one of them was called "Berkeley". Since it was a research OS, the university folk found many reasons to patch the code they had recieved, to the point where they had their own "Distribution" of the system which they named the Berkeley Software Distribution (BSD). Over time, this distribution of software eventually forked into 3 main BSD operating systems that we have today: FreeBSD, NetBSD and OpenBSD... Okay DragonFly BSD, you can come too.

Unix Bell Labs · 1969 BSD UC Berkeley · 1977 386BSD Bill & Lynne Jolitz · 1992 NetBSD 1993 FreeBSD 1993 OpenBSD fork of NetBSD · 1995 DragonFly BSD fork of FreeBSD · 2003

Of course there are many other forks of BSD, that's one of the unique advantages it has with its permissive license, you see, if you take a BSD and modify the code for your own purposes, there is nothing in its very simple little license that says you have to contribute it back, or even talk about it, you can just release your Sammy Game Station device running your own fork and never tell anybody what its running under the hood.

You have probably used it

Yeah, you catch that? The Sony PlayStation uses this OS, well a modified FreeBSD, and even more interestingly; The macOS kernel, XNU is an interesting hybrid of the realtime Mach microkernel (which is why it is so good for audio and video use cases) and a BSD layer mainly taken from FreeBSD. Finding that out was quite interesting to say the least, and explained just how architecturally embedded and deep some decisions are that can affect such a high level use case. The list of possible run ins you may have had with it continues with Nintendo also making use of the code as a base for their devices.

Why I went with FreeBSD (at first)

The choice of FreeBSD came down to the hardware I was targeting, I have this desktop machine that started life as a dedicated Gaming PC but had fallen out of use when I realised that outside had better graphics, and for everything else I just used a MacBook Air. Anyhow the machine had an Nvidia GPU and of the big 3 BSD distributions, FreeBSD is the only one that Nvidia ships an official driver for.

ZFS is very interesting

The default filesystem on FreeBSD is ZFS. Now ZFS is supported on Linux (although not out of the box in most cases) and the machine I was installing on just happened to have 2 drives of the same size in it. So when the installer prompted me, I decided "why the heck not?" and went for mirroring the install across both drives.

Having mirrors in a pool on a storage server is one thing, and the reasoning is pretty obvious, but having my OS install duplicated across 2 drives was something that the more I thought about the more interesting it got. If I removed one of the drives, the system would still boot, and if I then added a completely new drive, I could "resilver" the whole OS onto the new drive and then remove the old drive, thus completing the cycle of replacing all the drives in a machine, yet keeping the exact same OS install you started with, a proper Ship of Theseus you can actually run in production.

The advantages of focused operating systems

My experience on FreeBSD on the desktop was quite surprising; A lot more worked than I had expected and there is even a Linux emulator if you need anything special. It also seemed that I was trying at the right time, since there was a lot of activity going on and initiaves like the FreeBSD Foundation's laptop support and usability project. I would say for daily use you can actually get away with it on a desktop machine (if you don't watch content that requires DRM).

Running on a laptop though is when you start to feel compatibility issues. I actually tried, I have a ThinkPad lying around and put a FreeBSD on it for a while, closing the lid and having it come back to life actually worked fine, but reconnecting to wifi afterwards usually required a restart of multiple services which overall felt a bit clanky. I guess I could not sleep at all on the laptop lid closing, there are advantages to having a laptop that just continues to run with the lid closes. I would say this is a great option if you want to reuse an old laptop as a home server.

Finally, the mirrored OS trick really shines on a NAS, if you have hot swap bays you could even replace every drive without ever shutting the thing down. Frankly the appeal is never having to set the box up again, since the OS shares the same redundancy as the data it is storing.

There is however, a big yellow pufferfish in the room...

puffy

Then there's OpenBSD

OpenBSD, the branch of the BSD family tree that split off of NetBSD, and is interesting for the reason that its primary focus is on security.

I can't recall if it was an option on OpenBSD, but in FreeBSD there is an option to install the full source tree alongside the OS itself, so either by that same mechanism or by habit from FreeBSD, I ended up with the whole source tree of OpenBSD on the device after setup. I started browsing through the code out of curiosity. That's where I stumbled across the pledge() function.

Pledge is a syscall that a program can call to voluntarily lock itself down to only the operations it actually needs, of course a security focused OS would do that, hah!. What actually hit me with this discovery though wasn't pledge() itself, it was the fact that I had just learned about a core piece of the operating system I had just installed by reading its source. This was something I had never done on a Linux based system, where the kernel, the C library and every userland tool live in their own separate projects, rather than one coherent tree where you can just sit and browse. It's not impossible, but the barrier to entry feels way lower here.

The OpenBSD website boasts that they have had "Only two remote holes in the default install, in a heck of a long time!" and the project has even disabled certain features if they felt they were security holes; When Spectre and Meltdown happened they disabled hyperthreading, and webcams and bluetooth are disabled out of the box, which is a good thing because nobody actually needs bluetooth.

No you don't! For real you don't.

Okay start listening to a song on your AirPods, get grooving... okay... okay now pause. Now pull out the EarPods you got from the same manufacturer that are the same shape and size, untangle them; I'll wait. Right, plug them in and hit play. You hear that? Does it feel like you just came up from under water? Yeah.

Oh but its inconvenient

Well let me tell you something, whenever you are in public with wireless headphones in, there are at least ten people absolutely infuriated by behaviour you aren't even aware you are engaging in because you are completely blocked off from the world in a place you were never supposed to be listening to music to in the first place. I once had a bus driver in Norway tell me that...

Okay sorry, got carried away there, I will save you the rant about Bluetooth... for now.

Where were we? Oh yes! One of the interesting things about OpenBSD is that the releases are compiled in Canada, which kind of makes it the only decently usable open source OS that isn't based out of the US (no I don't think Linux "distros" count), thats interesting in its own right, so I had to try it eh!

I aquired a second hand AMD GPU (because OpenBSD does not support Nvidia), threw it in and got me a pufferfish screenfetch. Rather than i3 and eventually sway(since I now had an AMD card) which I was using on FreeBSD, I decided I should go full Unix nostalgia mode and try out some of the desktops with deeper histories. This trip through classical Unix desktop environments made me realise that a lot of the quirks of the macOS desktop actually have very deep roots.

OpenBSD is less functional as a desktop since it makes those security compromises and if I am not mistaken refuses proprietary stuff, however my takeaway is that for a specific use case, especially something that is exposed to the dangers of the World Wide web, I would pick this OS going forward unless I had some specific software that I needed that didnt run on it. There is also a feeling of being somewhat 1337 for using it.

Am I still using it?

Lets make this clear, The MacBook Air always serves as my true daily driver. This is because I cannot be trusted with machines that can install other operating systems, because I will install other operating systems (as you can clearly see), and a person needs to actually just do computer stuff sometimes.

That said my desktop is now back on Ubuntu, mainly because I am making a push to make use of local, rather than cloud LLMS as much as possible, especially for a certain side project, and Ollama is quite behind in the FreeBSD package repo, plus I am using an Nvidia card for that. If I did not have that main use case (and lets be honest, Skyrim is back), I would see myself using FreeBSD or even OpenBSD on a desktop machine, but laptops are still very much out of the question for now.

But the adventure left lasting impressions; On any OS with good support for it, and where it makes sense I now reach for ZFS. The data guarantees it gives you, the mirroring, the compression, the scrubbing, the snapshots, the datasets, heck even piping parts of your filesystem over ssh, it's really a miracle filesystem, and if there is one thing you try deep dive into after reading this post, it should be ZFS.

Its not on the desktop anymore, but I now have a full FreeBSD NAS which has replaced the role of a very Frankensteined Raspberry Pi 5 with an NVMe boot drive. Interestingly, this web page is now served to you from OpenBSD, the lesson here is the most lightweight or most secure option for that purpose probably is not a Linux based OS, there is a full operating system out there that probably meets this specific need way better. Your static site does not need to be in a cointainer.

Finally The ThinkPad went back to plain Ubuntu too, laptops for me are still firmly Ubuntu and macOS territory, at this point when I talk about my multi-OS environment, people usually ask me about "Windows", but I have yet to figure out what rectangles of glass in my walls has to do with computer operating systems.