This question popped into my mind recently on a rainy bike ride into my favorite co-working space.
For the past ten years or so, I’ve spent nearly all of my computing time in MacOS. I did that because it was required by work. Now that I no longer have said requirement in my life and am free to run anything I like on my systems, why do I keep coming back to BSD?
In a similar vein to Ruben Schade’s List of my first computers post, I’d like to yammer on about my computing history and see if any common threads emerge (gentoo pun!)
Early Days (CPM and DOS)
My obsession with computing began way back in the late 80’s when I was a precocious youngster. I had access to an Osbourne I, a computer that was limited in its accessibility to a child. It had a z80 processor and ran CPM as its operating system (a predecessor to DOS). Despite its oddity (compared to today’s easy to use machines), the Osbourne kicked off a love affair with computing that still occupies a good amount of space in my brain to this day. Mostly I tinkered with WordStar a bit and wrote silly programs in GW-BASIC.
Jumping into x86/DOS from z80/CPM environment wasn’t much of a leap for young me. I got access to a 286 COMPAQ “luggable” running DOS. The interaction dynamics of a particular operating system were too much for my small brain to comprehend so I didn’t give it much thought as long as my games worked properly. (Sopwith FTW!)
Once I was fully ensconced in x86 land, my next step came when I got a hold of a copy of Window 3.0. It ran on top of DOS and was kind of useful for things that mostly held zero interest for a young kid. Spreadsheets? What is even the point of them? My games either didn’t run in Windows 3.x or ran terribly. I couldn’t be bothered with it. I started writing silly programs in QBASIC and eventually migrated to Turbo Pascal/C.
Of course, that changed when Windows 95 hit the shelves and I bought a copy from my local computer store (remember those?). The lack of DOS frustrated me and my old games. I still didn’t know what the point of spreadsheets were. I did, however, start to mess around with Netscape Navigator and knew that the internet was a cool thing to play with. During this time, I kept a partition on my drive to just boot DOS 6 (because games).
Once the desktop computing world accepted that Windows without DOS was the future and gaming companies began to write exclusively for 95, I dropped my DOS partition and proceeded to be a Windows user who played games and jumped on the internet from time to time.
The details of when Linux fell into my sphere of knowledge have become fuzzy due to the fog of time and a terrible memory for these types of things. All I know that I spent a good deal of time downloading loads of Slackware
.tgz files to write to floppy disks so I could boot into a UNIX like operating system called Linux.
The games were text based and kind of lame compared with what I was used to in Windows but the power of the programming environment intrigued me. I was a budding programmer and the options Linux provided were amazing at the time. Being a child without the means to afford a fancy Borlandia compiler but with lots of time and a slow modem connection, I could download tarballs all the live long day.
Installing Slackware and getting it to work with my modem and connect to the internet was an endeavour full of frustrations and annoyances but what I didn’t realize at the time was that I was building up a core understanding a UNIX environment and how to manipulate it. As time wore on I found myself missing the UNIX environment every time I was forced to boot something else (generally to play a game or connect to AOL).
By the time I was thinking about heading to University, my fingers had become fully vi-ified and I couldn’t use other editors without leaving a string of h’s and j’s strewn across the text field.
UNIXLinux was in my blood.
This is UNIX
I attended college before it got to be crazy expensive here in the United States (late 90’s) and was able to parley a job at the University into an education on how computers are operated in large environments. I landed a job with the IT staff to ostensibly help with desktop systems around campus.
I found the job incredibly easy and got my work done quickly. In my downtime, instead of studying, I began pestering the senior admins with questions about the systems that under girded the University’s compute environment. The datacenter, like many university’s at the time, was full to the brim of purple Sun Microsystems servers. To me, these were quixotic.
How do they work? How does one manage one? How does one manage so many of them? These questions and more instantly came to mind. I spent my year at University lobbing questions at my colleagues on how to operate and wrangle these lovely lavender beasts. Thus, I completely neglected my classes and the stuff I was “supposed” to learn. Basically, I was a terrible student so the university didn’t ask me to attend the next year.
I was okay with that because I’d had a taste of UNIXy computing and I wanted to chase it outside of academia.
UNIX/Linux is for my work
After a few terrible and not so terrible Windows centric computing jobs, I ironically found myself working for a large-ish university again but as a full time staff member this time. Once again the datacenter was full of purple servers and I was the tech lead of the UNIX team. Solaris was the OS of choice for these systems and I fell in love with it all over again from my shortened University days.
Solaris 10 had just hit the shelves and my team and I embarked on an upgrade of all our servers from Solaris 8 and 9 to 10. ZFS, Dtrace, and Zones were new at the time and downright amazing. We solved a number of the university’s performance and storage issues by utilizing all of them.
This was roughly 2007 or so (pre-Oracle buyout of Sun Microsystems). I was in UNIX hog heaven with a Sun Blade 1500 on my desk at work and a 1000 at home to play with.
MacOS is for my work
Eventually, as the Sun began to set from a lovely violet into an obnoxious scarlet, I heeded the siren song of Silicon Valley and moved my family out to California. MacOS became a huge part of my daily existence and my daily driver for work and home for nearly ten years.
During this time, I was extremely fortunate and worked with a bunch of BSD nerds since I was living in in the land where it was brought to life. I got a lot of enjoyment out of talking about UNIX history and the best ways to approach different types of problems in computing.
Unfortunately, MacOS begun to trend in ways that I didn’t care for as much. I’m not super opinionated about OS design but I felt that the OS was becoming too… sugary?
What once got out of my way while working now seemed to work to get in my way.
BSD is for my life
During all my time living in Linuxland and MacOStown, I’ve always had some version of Free/Open BSD running the most important systems in my household (firewall, file server, household wiki, minecraft server, etc)
All of this background brings me to today and my options for desktop and server computing environments. With so much history on UNIXy operating systems, it feels weird to me to run anything else.
Why not Linux? Frankly, Linux feels like it’s moved awfully far off the UNIX ranch with systemd and I don’t feel inclined to keep up with the constant changes.
(That being said, I keep a Fedora laptop around to play games with my daughter using bluetooth gamepads but I don’t do anything that important with it other than light web browsing.)
Regardless of whether or not FreeBSD does a thing better or worse than another OS, I think it’s lodged in my brain for the rest of my days.
While it’s common to argue on the internet about the best editor / OS /game / new thingy ad nauseam, I generally view such arguments as largely a waste of time. My individual preferences run toward the BSD way of doing things and I’m happy to stick with it.
So I think I’ve hit the crux of the original question why do I keep coming back to BSD? My best answer is that I grew up running UNIX systems and the BSDs are the closest adherents of core UNIX philosophies.
Boring, I know, but boring generally equates to stable and older me really appreciates that.