After twenty plus years using Linux, I finally took a deep dive into the world of BSD last year. Before that I had dipped my feet into FreeBSD– I had an install of FreeBSD in a VM for a while, but never used it much beyond logging in and looking around (Yup, this is like Linux, but different). Last year, when I repeated the experience, I actually took the time to learn how to get FreeBSD set up to be usable as my work environment and work through the issues I had, and started using it daily, first in a VM, but soon enough directly on the hardware.

My experience with FreeBSD wasn’t quite ‘love at first site’, there was a learning curve, and a ‘pulling my hair out trying to make this thing that I needed for $JOB to work’ stage, but there was an immediate draw that was both refreshing and surprising, being that I had never used a BSD before– nostalgia. Even if FreeBSD was a little different than what I was used to, it reminded me of what I had loved about Linux when I first started using it, and didn’t realize I’d lost. There were two components to this:

First, there is a certain fun and mystery in having this new playground to experiment and learn in. I remember twenty-five years ago, just sitting in front of a shell prompt, after installing Linux, trying to figure out what everything was and what it did, finding all sorts of interesting commands, services, functionality. At the time it wouldn’t have been all that surprising if I’d found the secret to eternal life, shoved in some cryptic corner of the file system; it all seemed that big and complicated. There was an entire world here, with its own history and mythology; and I was on a quest to explore it. The more I learned, the more that world shrank, and Linux became just an Operating System. but just the little twists that FreeBSD threw at me was enough to bring back those memories. For the first time in years I knew the relief and accomplishment upon finally getting X11 running. I remember spending weeks (on and off) banging my head against XFree86 configuration files in 1996 getting a proper resolution and color depth (No thank you 640x480). I’ve been using modern Debian now for so long, I just expect it to all work out of the box and boot me to a perfect desktop right out of the installer. And this is a good thing of course, I’m not arguing that the old way was better, but there is something to be said for doing it on your own.

Second, FreeBSD reminds me in a lot of ways of the Linux I used to use. Linux has changed a lot on 25 years, but it did so so slowly, that I almost didn’t realize that it had kind of morphed into a new thing, and I’d gone along for the ride. I tend to think of Linux as basically a Unix-clone, and it certainly started that way, but over the years it’s diverged from the original Unix feel, and bolted on new idioms and uses. And again, this isn’t a bad thing, this is progress, but I almost feel like Linux is to Unix what Mac OS X Is to Unix, or what Android is to Linux. Yes under the hood its the same, but the OS Environment you use and live in is something a bit different. FreeBSD is more like the Old Linux I remember from my college days. Simpler and purer in some ways, but more cryptic and impenetrable in others perhaps. In FreeBSD I don’t have to feel guilty every time I use ‘ifconfig’ instead of ‘ip’, or remember whether the configuration file I want to edit can be edited directly, or if systemd has claimed authority over it and I have to go through some higher level subsystem to get the changes I want to trickle down to where I want them.

I commonly see threads on r/FreeBSD and other places where a Linux user basically asks “Why should I switch to FreeBSD”, and while there are plenty of answers people like to give, for example see here and here. Also here.. What I would add to all the technical and ideological arguments is that, for the right kind of Linux user, FreeBSD is more fun, and more like the Linux we originally fell in love with.

And everything I wrote about FreeBSD above, seems to be even more true for NetBSD, which I’ve only just begun to explore. Unlike FreeBSD I haven’t yet been successful in setting it up to be usable for my use cases so I can run it and actually get work done, so I’ve been limited to just playing around in it. FreeBSD so far seems like a good middle-ground between the enhanced hardware and application support of Linux, and the simplicity, pureness,and awesomeness of BSD.