Journey into Darkness: Part 1


Awakening

My first experience with computers was in the late ‘90s when my family bought a Gateway desktop running Windows 98. I was in elementary school and hardly knew what a computer even was, let alone what it could do. The world wide web was still relatively new to the public and I was hardly aware of its existence despite our access to dial-up. The only thing that interested me was the large binder of compact-disks which came with the machine, many of which were games that I would often play after school. We had this machine for only a couple of years before it was infected with malware and put into storage, where it would remain for more than a decade before I’d take it apart in a misguided attempt to revive it. If I remember correctly, that old Gateway had something like 32MB of RAM and maybe a 20GB HDD.

Then around 2003 we got a new HP desktop which I became obsessed with. Like the old machine, this one had a single-core 32-bit CPU rated in the MHz, but it had 192MB of RAM and a 30GB HDD. Dial-up would remain our only connection to the internet for years even as DSL and WiFi became a thing, and I can still hear the bizarre sequence of sounds played over the speaker every time it connected. Having learned to use the web browser, I would look up almost any topic of interest and read for hours. Soon I would begin exploring the file system hierarchy, the system settings, anything that was accessible. I wanted to know what could be changed, how things worked, where stuff went. This would later cover such arcane topics like disk fragmentation, setting up environment variables and modifying the registry which was necessary on more than one occasion, and all by the age of 14. People would often come to me whenever something went wrong with their computer, and for a while I was able to solve their problems.

It was around that age when I was first introduced to computer programming. I’d read about Java being used to make games and started there in the hopes that I could write some 2D sidescrollers, but the tutorials assumed the reader already understood what object-oriented programming is and started out with the use of “classes” just for a simple “hello world”. I jumped ship and moved on to other languages, wanting nothing to do with such arcane topics. Naturally I tried learning the C programming language, but for some reason the syntax of C++ seemed more appealing. Again the concept of classes made no logical sense and seemed like a needless and confusing way to achieve what could be done with ordinary functions, so I would stick with procedural programming long before I ever knew about the different programming paradigms.

For some reason I thought an IDE was necessary to write code, and I recall using Eclipse for a while but ended up sticking with Bloodshed Dev-C++ because it was simpler and seemed to perform a lot better on our machine. I could be wrong but I believe the compiler I used was from Borland, but it may have been GCC. Python 2 would become my favorite language because it was quick and simple to learn and did not require an IDE or a compiler, though I did explore other languages and even briefly experimented with Pascal, BASIC, C#, Ruby, even Visual Basic which turned out to be a colossal failure and waste of money spent on the book… Of course back then I had no need to write any software since anything I could think of had already been made and was far more capable than anything I could have written. Even ten years after my first ‘hello world’ the only useful tool I’d written was an accounting program which kept track of how much money I had and what I’d been spending it on. It was first written in C, then C++ and then Python, but it only ran in the “command line”, or what passed for one on Windows.

At some point we had gotten a second-hand IBM ThinkPad running Windows 95, which never connected to the internet and always needed to be plugged in because the battery couldn’t hold a charge. I would use it for writing short stories or playing with the paint program, but was especially intrigued by the large box of 1.44MB 3.5-inch floppy disks that came with it. Half of them were unusable, but many had useful software to install including Corel Draw and some other office-related tools. If not for this antique the course of history would likely be quite different for me.

One day in 2006, I got the bright idea to start deleting files on the ThinkPad to free up some disk space, despite having no reason for doing so. After all, I wasn’t writing a library of novels and certainly wasn’t writing any software on this thing, not to mention the dozens of floppy disks that could easily fulfill my nonexistent storage needs. The first folder to go was labeled “WINDOWS” because it was loaded with files that all used the same icon, and any attempt to open them prompted a dialog box to appear, telling me there was no software installed that supported this file type. The mistake of deleting this folder didn’t become apparent until someone tripped on the power cable half-way through the purge, as upon rebooting I got this cryptic message:

No OS found

Microsoft Windows was the only thing I knew at the time, and by then I’d learned all there is to know about it …or so I thought. I was only vaguely aware of Apple computers but had never used one before. There was one in my classroom but nobody ever used it, and when I asked about it one day the answer was remarkably unhelpful: “it’s just really different” …okay, different how exactly? It turns out deleting Windows from the ThinkPad was perhaps the best thing I could have done, because after learning the meaning of that cryptic message I made it my mission to research the foreign concept of “operating systems” using the relatively new Wikipedia.

When I research something, it’s not just a matter of reading an article or two and calling it a day. No, this became a history lesson in computer technology, going all the way back to the ENIAC and other behemoth vacuum-tube computers of the 1940s and 1950s with their patch-cable plug boards, then the discrete transistor mainframes of the 1960s with wire-wrapped CPUs and “core” memory, the 1970’s minicomputers and the microprocessor, the microcomputers of the 1980’s and eventually the Apple systems, on to the 1990s IBM and generic PCs. Through all of this I found references to countless operating systems that have come and gone, many of which were either variants of Unix or some form of DOS.

First Exposure

Unix became an obsession for me, and I would search in vain for a copy of the original AT&T Unix that would run on x86. I’m not sure exactly what got me hooked onto that idea, but at the time I must have thought (incorrectly) that the BSDs were either unobtainable or couldn’t be installed on the HP desktop. The existence of Linux was promising, and on discovering Ubuntu I promptly ordered a CD.

This would be my first proper introduction to free open source software, a novel and fascinating concept at a time when most software I knew about was either free to download, free to try or cost a fortune, and always coming with a mile-long EULA page that probably nobody ever read and with miles of strings attached. Never had I imagined anything of the magnitude of which I was about to experience: an entire “operating system”, complete with a bundle of useful software preinstalled, for free? As in free to download, use, modify and redistribute? What rock have I been living under?

When the CD arrived in the mail, I quickly tore open the package and loaded it into the computer, ready to try a free OS that was based on this “Unix” I’d read so much about before… The experiment did not last very long as Ubuntu needed at least 256MB of RAM to run, but the machine had only 192MB. Oh sure the desktop would appear, but that’s about it. Even trying to open the “start” menu was asking too much of this aging machine. Despite the different overall theme, it didn’t look too different from Windows XP. I mean there was a toolbar with a menu and a clock, and what turned out to be virtual desktops (what!?), but it was otherwise unusable.

Already I was a fan despite having such a poor experience. There were many other “distributions” I could try. Damn Small Linux sounded nice since it managed to fit a lot of useful software into a 50MB download, which is significant when you consider the several hundred megabytes to download Ubuntu and the fact that we were still using dial-up internet. Now let’s just think about that for a second: An entire operating system, complete with the GRUB boot loader, a terminal emulator, multiple window managers and text editors, graphics editors and viewers, three web browsers including Firefox, plus many other utilities for office and email and the usual assortment of standard Unix utilities, all on a 64MB flash drive! I couldn’t believe it, and in 2023 I think such an achievement may just be impossible with a modern kernel and up-to-date software. Even many mobile apps are larger downloads and are nowhere near as functional.

Unfortunately it wasn’t so easy to install Linux at the time, and installing Damn Small Linux required the command line to manually partition the disk, copy files, set up the boot loader and so on. There was no helpful GUI installer like on Ubuntu, and it was a terrifying experience because I knew that just one mistake would turn the desktop into a large paperweight just like the ThinkPad. I had no idea how to fix it should things go wrong, but by some miracle granted by the gods no mistakes were made and the system was installed alongside Windows XP (just in case). Upon booting, I was thrown into a very unfamiliar environment with an ugly background and no start menu. Turns out the menu is opened by clicking anywhere on the desktop. Getting online was impossible, and getting used to this strange user interface was out of the question… It had to go.

For some reason MS-DOS had become another obsession of mine, but the decision was made to play with FreeDOS since it was an active project that was readily available and could be installed from a CD. By this time I’d acquired a used desktop which ran Windows ME and had both a floppy disk drive and a CD drive. It was often used to experiment with things that might break the HP machine, and within months the antivirus could no longer update. A few months later it couldn’t even get online, so it was the perfect test bench for a new operating system.

The environment was rather strange but fun to use, like traveling to another time period. All those old floppies served a purpose again, and I was even experimenting with C and C++, partly because I couldn’t get Python installed. RHIDE became one of my favorite editors, though I did try GNU Emacs briefly and was not impressed. Suddenly the command line was no longer this useless add-on for Windows, it was the only way to work. There was no need to use a mouse, which was good for me because I didn’t have a desk in my room. Instead the 14” CRT monitor sat on top of a small nightstand which left no room for anything else, while the single drawer was pulled out to hold the keyboard. The space below the drawer was open so I had some leg room, but it felt like I was sitting at a clown desk. I was amazed by how fast this old computer started up, but the lack of internet access meant having to download software on the XP machine and burning to a CD.

It was mostly used for playing old DOS games such as Doom, Blood, Quake, and many others I don’t recall the names of, but at some point this machine was used to play with Damn Small Linux again, giving it one more chance despite the annoying user interface. Aside from installing it using printed instructions, this was my first real experience with the Linux command line. I’m sure you can predict how this went after using DOS for several months: trying to use commands like ‘dir’ and ‘chdir’ would fail since their Unix counterparts were ‘ls’ and ‘cd’, something I did not expect. Trying to change the command prompt and the color profile also failed. Typing ‘help’ was met with the response ‘help not found’, which I interpreted as the system mocking me. Suddenly I decided I don’t like this “Unix” I’d read so much about, and it would be years before I took the time to actually learn the Linux command line.

Delah Tux

By 2009 laptops were appearing everywhere. The FreeDOS machine had been retired and the HP machine was getting slower. Ubuntu was becoming popular enough that I wasn’t the only person in my town to know it even existed, and when I got my first laptop I promptly installed it alongside Windows Vista. This machine had 1GB RAM, a 250GB HDD and a quad-core CPU, so the experience was much smoother. Soon after, I would learn about Xubuntu and Linux Mint, both based on Ubuntu and just as easy to install. Suddenly I was overcome with distro-hopping fever and would spend the next seven years exploring the world of alternative operating systems.

Linux Mint had become the daily driver within months and I suspect it may have something to do with the resemblance to the Windows UI. Familiarity is key when introducing people to an alternative to something they’ve always known, and this very idea is what prompted me to delete Vista and replace it with Windows XP for a bit, only to once again delete Windows entirely and use Linux full-time when I became comfortable enough. Of course the lack of support for many games prompted me to reinstall it soon after and continue dual-booting. This alternating pattern of deleting and reinstalling Windows would continue for more than five years as I struggled to break free of my dependence on it.

Dozens of Linux distributions would be tested on this machine, leaving me with a pile of CDs for anything I could download. That doesn’t even include anything which could boot from a flash drive (Puppy Linux, Slax and SliTaz). Of course I tried Debian, Knoppix, Slackware, OpenSUSE, Fedora, Ubuntu, Xubuntu and all the many variants. I even used OpenSolaris for a while, but it was rather slow. The Windows-like ReactOS would come and go a few times, and the BSDs were tested briefly. At one point I tried a Linux distribution called Phoenix, which ironically caused the computer to get unusually hot. There were many obscure and independent distributions of interest as well, and one of them was Void Linux. I think it was the name that stood out to me, but at the time there was nothing in particular about it that would interest me enough to keep it for more than a few days. That would certainly change years later when we’d meet again under different circumstances.

When this laptop began to literally fall apart, it was replaced with an Acer Aspire “netbook” with a 10.1” display, dual-core CPU and maybe one or two GB of RAM, probably running Windows 7 by then. I installed Ubuntu for the first time in over a year to find they changed the user interface to some kind of side-bar which I hated. It was also quite slow on the Acer, so it was promptly tossed out and replaced with Linux Mint, followed by Xubuntu in an attempt to further reduce the memory usage. This would later be replaced by a larger laptop that could just barely play Minecraft, but that got broken less than four months later.

It seems exposure to Windows and Linux Mint gave me the impression that all operating systems are supposed to be similar or even identical in the way they handle everyday tasks, so a great deal of Linux (and non-Linux) operating systems were never given much of a chance. One excellent example is FreeBSD, much to my later regret as I don’t even know what was wrong with it back then. Still others were interesting but thought to be unusable as a daily driver, including ReactOS and, um… Plan 9. Later I would learn about Redox OS, Harvey OS, Popcorn Linux and some others, but would never get around to trying them. Looking back, I wasn’t so much interested in the operating system itself but was more focused on the user interface and available software that could be installed without building from source. Rather than get to know the system and customize it to my own desires, I was relying on the prepackaged GUI experience as provided by the default install. Only near the end of the Delah Tux period would I start to seriously consider what a specific system actually offered, but by then the desire to explore was losing momentum.

The last laptop from this period was purchased sometime in 2012. I recall standing in a large Best Buy looking at a long line of laptops, all of which had Intel processors and price tags that were beyond my budget. Somewhere in this premium mix was the only sub-$500 laptop in the entire store: an HP with a quad-core A8-4500M APU, 4GB of RAM and a 500GB 5600 RPM HDD. The salesman seemed unhappy that I had chosen this piece of junk over all the others and in spite of his objections, and the fact that I couldn’t afford anything else. It came with Windows 8 pre-installed but I set up for dual-booting Linux Mint.

By now the DOS machine was gone, the HP desktop was a skeleton with no disks and the Acer Aspire had a busted screen for some reason. For the next four years I would replace Mint as the daily driver and try Arch, Fedora, OpenSUSE, Debian, Tails, only to circle back to Mint again despite some cracks appearing in the old workhorse. I’d even upgraded to Windows 10 because I was curious about some of the changes and was excited to finally have virtual desktops on Windows without relying on third-party software. In 2016 I replaced Mint with Xubuntu in the hopes that it would use less RAM, but it was becoming impossible for me to avoid the obvious:

Software is getting bigger and slower for no apparent reason.

Part 2 | Index | Home