Why BSD? Why Not GNU Linux?
A journey through many operating systems.
MS DOS 5.0 was my first operating system on an IBM PS/2. It came complete with a simple batchfile driven menu system dropped onto it by it’s previous owner capable of launching previous installed applications making it possible to use without ever touching the commandline. One day as I was mucking about downloading zip files from bulletin boards (over a 2400 baud modem) extracting them, fiddling with their contents and deleting them; I inadvertently issued a “del . while in the root directory and wiped out the autoexec.bat and menu system.
It forced me to learn simple scripting to repair the damage and taught me tons of tricks on the DOS commandline.
From DOS I learned the power of scripting and ultimately not to fear the commandline.
Our family’s first Pentium computer ran Windows 95 OEM v2. It was the extremely late release of Windows 95 which shipped with a couple of Windows 98 features. I dived deep into the windows system internals. I used custom shells (my favorite being geoshell). I wrote a simplistic custom shell for my father (who at that time was bit computer phobic) that allowed him to drive windows using a a full screen menu system and prevented him from launching multiple copies of the same application when he had trouble “double clicking”.
I hacked the windows boot menu, with and wrote batchfiles and married them to the windows boot menu that swapped out the HKEY LOCAL USER registry hive for each person who sat on the computer. Essentially making my own implementation of a multi user system on top of an operating system that lacked one. (Until it collided with a windows update that spectacularly broke the whole OS)
From Windows I learned to love diving into and tweaking an operating system’s internals to suit my needs however I also learned it wasn’t well suited for it.
I once read someone describe BeOS as an “operating system with a soul” and ive always found that apt. It was the first operating system I owned that I would describe as elegant and the first operating system I ever used that I was truly passionate about.
As a BeOS user I had to wrestle with hardware compatibility, software compatibility, proprietary filetypes. I became passionate about open standards and was introduced to the GNU tools and learned to appreciate a Unix shell.
As Be Inc. folded in a marketplace that was increasingly hostile to anyone who wasn’t Microsoft I also got to have that experience of what it is like to tough it out with an operating system you love, through harsh winters of no support and long endless software droughts.
From BeOS I learned to appreciate technical elegance. I also learned that (tragically) proprietary software dies with the company; where as open source software can live on as long as it’s contributors have motivation.
I had tried various GNU/Linux distributions in various capacities over the years but never stuck it out with any one for very long save for Gentoo Linux. Typically hardware compatibility issues, the scarier non auto configuring days of XFree86 and foreign packages triggering apocalyptic dependency hell scenarios kept me away by and large.
A notable exception here is an interesting and oft forgotten redhat based linux distro called LinuxInstall sometimes named after it’s website linuxinstall.org
Gentoo to this day doesn’t ship so much as an installer as a set of boot strapping tools and a package manager along with a guide and thorough documentation on how to build your system from the ground up.
It’s package management system for installing software and updating the system is source based and generally follows a rolling release model.
Gentoo doesn’t just encourage but practically requires it’s user to learn intimidate details in how their operating system works and how to optimize it. With Gentoo I truly learned GNU/Linux inside and out for the first time but it was also in some ways fragile. It was all too easy for users to break their systems during major transitions and upgrades teaching me that I didn’t like rolling release models.
Mac OS X (The PowerPC Years)
Mac OS X was a breadth of fresh air initially after spending years with Gentoo and BeOS. I was on a major operating system supported by a major corporate entity and I had tons of commercially supported software at my fingertips without loosing access to a Unix shell. I even was on PowerPC hardware and architecture id been curious about for some time. (Be Inc’s BeOS had a PPC port and at one point sold PPC hardware.)
Mac OS X over the years also burned me a couple times over DRM and their enforced obsolescence treadmill. Mac OS X taught me while I could appreciate an operating system that was curated and grown by a single focused team as opposed to assembled from numerous diverse parts but once again drove home that proprietary software betrays.
Ubuntu and Debian
From Mac OS X I switched to Ubuntu on PPC hardware. From Ubuntu I learned that I by and large adored the Debian release cycle and tools. I also learned that while Ubuntu was well polished Canonical’s corporate policy was prone to sudden strange turns with no warning to it’s volunteers… and when Ubuntu dropped official support for PPC I learned I valued an operating system with support across lots of diverse architectures.
Debian taught me that I genuinely appreciated and valued my operating system being sourced from a non-profit with no vested interest in spying on me or locking me into their ecosystem. I genuinely appreciated that it had a clear governance structure set of processes which governs it’s decisions.
In Debian their are very few surprises.
But while there are very few surprises in Debian one thing that Debian’s philosophy, constitution and procedures are silent on are how an operating system is to behave. SystemD is a historically recent project that has been sweeping large numbers of GNU/Linux distributions. Its by design to unify a lot of disparate plumbing in these operating systems under a single set of interfaces. However it is in some ways an inherently unstable target.
As it replaces dozens of other subsystems in these operating systems it does so with no clear limits on what is in scope and what will be replaced or changed next. It also does so with no desire to keep unix compatibility or any unixisms.
Ultimately I was left deciding if long term I wanted to stay on that treadmill, switch to a GNU/Linux distribution which was actively avoiding SystemD or switch to an operating that actually had a clearer philosophy on how it behaves and how it’s various subsystems operated such that I could learn the bulk of the whole thing once with minor revisions over time.
I ultimately chose the latter.
NetBSD has everything im looking for in an operating system these days:
- It has multiple choices in powerful command line shells with pervasive scripting.
- It is an operating system that leaves one free to tweak it’s internals.
- It has built into it’s mission statement a desire to comply with open standards.
- It is not proprietary.
- It is technically elegant.
- It is not a rolling release.
- It is curated and grown not assembled.
- It is run by a non-profit.
- It supports many architectures.
- It targets Unix.