Journey into Darkness: Part 2


The Byte Plague

When I first started writing this story in 2017, Xubuntu was at version 18.04. It needs at least 512MB of RAM, but it recommends that you have at least 1GB. Seems like the RAM requirements have doubled since 2009 when it was intended for older machines with fewer resources (like that Acer Aspire). Linux Mint was also known to be lighter on memory usage back then, but that’s not true anymore. As of January 2023, it recommends roughly 15GB for the default MATE installation according to the website, twice that of Xubuntu 18.04. It doesn’t say anything about RAM or CPU requirements, so it’s probably safe to assume 4GB is the recommended minimum.

As for the old HP desktop that couldn’t run Ubuntu? It must have been version 7.04 at the latest, requiring 256MB RAM for a usable system and a few GBs of free space, probably a Pentium or similar CPU at a time when a single core was the norm. Well Ubuntu has grown quite large as of version 22.04 LTS, recommending a 2GHz dual-core CPU, 4GB RAM and 25GB of free space… I don’t even know what to say to this, so we’ll just move on.

Windows 10 recommends 20GB disk space, 4GB RAM and 1GHz CPU, which is in stark contrast to Windows XP Home or Professional edition. The recommended specs were a Pentium or similar CPU clocked at 300MHz, 128MB RAM (though 256MB is more realistic) and 1.5GB of free space when not including the service packs. Aside from virtual desktops and a face lift, just what the hell does Windows 10 even offer in terms of useful functionality that XP didn’t have? Something must be responsible for the increased requirements, because I know it wouldn’t be of any use on such old hardware. Oh, but now it’s “Windows 11”, whatever that means.

In most cases the OS alone uses less than 500MB, but the last time I installed Ubuntu (version 18.04), idle RAM usage after booting was just over 1GB with the default installation which once again, leaves me speechless. Modern web browsers easily consume 1GB and spawn multiple processes with just one tab open. I’m sure a good chunk of that stems from the web essentially being a whole software platform of its own now, but it seems like such a waste for viewing what is fundamentally plain text and the occasional image, something I can easily achieve with Dillo while using less than 30MB of RAM. Honestly the exact benefits of the modern web browsing experience continue to elude me…

Part one of this story is comprised of over 3100 words, measuring ~18KB and would take no less than five seconds to load on a dial-up connection. If it was like most “modern” pages full of ads, JavaScript and superfluous graphics, it would not fit on a 1.44MB floppy disk and would take over five minutes to download on a dial-up link… I’ve even found many sites that don’t work without JavaScript, making them completely useless in older browsers. Still worse are the “dynamic” pages that often misbehave on mobile devices, where you (try to) scroll down and a block of text suddenly starts moving in from one side, background elements move around and it’s all just so distracting it prompts one to scream inside as they wonder just what the ever loving f#!k was so wrong with plain-old HTML that necessitated the creation of such resource wasting eye-candy to display what amounts to nothing more than a couple of short sentences?

Things are not much better on mobile platforms either, and in fact it may be even worse. The last phone I bought prior to 2023 had 2GB RAM and 32GB internal storage, yet 9.8GB of that storage was taken up by Android 10, while only half the RAM is available for the apps I might run. Somehow I find it hard to believe that a mobile OS that runs on ARM processors can take up so much space. Even many apps are surprisingly large downloads despite many service providers having relatively low data caps and throttled (i.e: crippled) bandwidth when the data cap is exceeded, yet another issue imposed by the web being bloated. You would think ~20GB of usable storage should be plenty for mobile devices, but it’s all too easy to run out of space with only a handful of apps installed, and that’s ignoring any music, videos or photos which might otherwise be on the device if only there was any space left. But perhaps I’m biased because of my experience with PalmOS Garnet.

Prior to getting a laptop, I had a Palm TX which was used for more than two years for web browsing, email, word processing, playing music and videos, even running a graphing calculator program which put the TI-84 to shame. I had it right up until some jack-wagon decided to use it without my permission and permanently drained the battery. This was the flagship PDA made by Palm before they switched to making smartphones, and it went everywhere with me. In terms of raw computing power it was a joke compared to even a modern low-end Android device, yet it did the same damn things any phone today can do. There was even a full office suite and programs to write (and compile) C and C++ code, and probably other languages if I remember correctly. When the internal flash got full you could move some programs on the SD card, something Android used to do in the early days. In some ways I think Palm OS Garnet was superior to later versions of Android and is something I deeply miss.

The Palm TX had the following specs:

Strangely, this is still listed new on Amazon for $170 as of January 2023, but it’s been discontinued for many years… Notice the battery size in the TX and compare it to most phones made in the last few years. I’ll bet dollars to donuts the overall runtime hasn’t changed all that much between a Palm TX and a typical Android phone made ten years later, despite having batteries with two or three times the capacity and chip sets that are made with increasingly small transistors which helps to reduce their power consumption. The exception is my current ruggedized brick of a phone which weighs just over a pound and contains a 10000mAh battery. This thing will run for two days with nearly constant music playback throughout the day, and if the TX had this battery it would probably run for over a week.

But enough of all that, let’s go back to 2016 for a bit. I bought a used HP Z600 workstation in the hopes of finally playing Minecraft at more than 30fps. The machine had a quad-core Xeon CPU and 12GB of RAM, but the GPU was some outdated model specifically made for workstations and was of no use for gaming. Linux Mint was becoming harder to tolerate for some reason, so I decided to try installing Arch. It was the first step towards what would later become a crusade against software bloat. It was also the second time I would manually install Linux from the command line, and it still wasn’t fun. Of course by then I’d learned enough about disk partitioning and boot loaders to not be concerned about ending up with a 40lb brick. Confidence was high as I set out to try this “minimalist” Linux distribution… and immediately proceeded to install Xorg along with MATE and all the other GUI tools I’d known and used, so I’m really not sure what this was supposed to accomplish.

Up to this point, I was only vaguely aware of systemd, but I hadn’t given it much thought since it wasn’t something that concerned me as a casual user of the prepackaged GUI Linux experience. Even on Arch it wasn’t something that called for much attention after the initial set up. That would soon change as this apparent disease would go on to infect Linux distributions left and right, causing all manner of discord and hoo-ha which even I couldn’t help but notice. With the observations of Mint misbehaving, Ubuntu becoming a pig and Windows taking bloody ages to reinstall (is it frozen? we’ll know in about 18 hours…), my outlook on things began to take a radical turn. I knew something was wrong, but I wasn’t sure what to do about it. The answer would come to me in the next year.

Oh and yes, Windows 10 did in fact take more than 18 solid hours to reinstall, as experienced when I tried restoring someone’s work computer to save them from needlessly spending money on a new machine. Just what the hell was it doing in all that time, anyway? Honestly it wouldn’t surprise me if the recovery tool was installing the OS, downloading the countless updates that came after the machine was made, followed by installing them one by one. Based on how long it took and how many times it restarted, that is the only logical answer I can think of.

A T430 in the Void

Software obeys the law of gaseous expansion - it continues to grow until memory is completely filled.

When the last laptop mysteriously died in late 2016, I was stuck using an Android phone as the daily driver for several months, having since given away the Z600 to someone in need. Oh, what fun that was… During this time I would discover K.Mandla’s blog which talks about running Linux on older hardware, usually with the goal of operating solely from the command line. Soon I would install Termux to try this novel idea of working without a GUI once more, while an ancient Windows XP machine at a friend’s house allowed me to run Cygwin. It wasn’t quite the same as a real Linux installation but it sure beat Android. Having a full mechanical keyboard again felt strange, but it was quite a relief to be done with the comically small folding keyboard I’d bought for the phone.

Soon enough I’d research software bloat and the Unix philosophy, which would naturally extend to why GNU is bad, why systemd is evil and why object-oriented programming is just plain stupid. Thus began a crusade against all that is counter to the Unix Philosophy and minimalism in general. I would shun anything which seemed to conflict with this newfound way of thinking, even without really knowing just what was wrong with a given piece of software. Sometimes I’d avoid something simply because it was written in C++, which goes to show just how ridiculous and extreme I can be at times. It wouldn’t last long since it appears to be almost impossible to avoid all the things I thought were bad.

Not long after that I rediscovered Void Linux, now touted as one of the most minimal Linux distributions in existence. I thought of that old desktop running FreeDOS and how much fun it was to use the command line exclusively, having only as much software as was needed to get the job done. No flashy GUI, no massive IDE for coding, no spyware of a web-browsing second system, just a text editor and a compiler. Simplicity at its finest. Suddenly I felt the pull of gravity as I explored the K.Mandla blog and their similar Inconsolation blog, learning of all manner of CLI tools which could replace the graphical variants I knew and used up to this point. I read the specifications for Void and was amazed to learn that the base system requirements were only 96MB RAM and 700MB for storage, something I didn’t think was possible for a modern Linux distribution. The base ISO was less than 400MB and only included enough to make the system work. There was no systemd, no graphical nonsense, nothing! Like many before me, I stepped into the Void.

I bought a refurbished Lenovo ThinkPad T430 to replace the Android as a proper daily driver. It came with Windows 10 pre-installed which I booted into just once to download Void and put it on a flash drive. Once that was done, I cheerfully deleted Windows for probably the 14th time in my life. As is usually the case with Linux, it took far less time to install than any version of Windows since XP was released, but in this case it was less than five minutes using the TUI installer. Despite having used Linux daily for nearly nine years, there was rarely any reason to use the command line since all of the software I used was graphical, but within weeks the T430 was configured with a number of CLI programs which replaced everything I once knew, and there was not a single GUI in sight. This marked the start of many new usage patterns, and while there had always been one machine dual-booting Microsoft Windows for playing games, this was the point where I would abandon Windows for good and never look back.

It was on this machine that I first learned the Lua programming language, followed by Go. This was prompted by the huge changes made to Python between versions 2 and 3, and how Python 3 tends to have breaking changes between point releases. I knew about the text editor vi and its heavier clone vim, and it was this machine on which I first learned to use this arcane but powerful editor. Web browsing was suddenly much faster when using w3m since JavaScript and CSS are not supported, though image support made the transition a little easier.

Often during the distro hopping period I would find that some things just didn’t work out of the box, and the T430 was no different. This required exploring the web to find a script which changes the screen brightness by writing to /sys, which was annoying since it needed to be run with root privileges. In fact, Void showed me just how much the mainstream distributions were customized in order to make Linux easier for non-technical users. A fine example is external storage being mounted automatically when plugged in, which I always thought was normal and took for granted. Almost all of my knowledge about the inner workings of Linux are the result of my experiments with Void, including my very first attempt to compile a custom kernel. That was certainly a time consuming experience but it gave me deeper insight into what was necessary to make it run.

What surprised me was how little attention Void was getting at this time (2017) despite all the hate systemd was getting at the sysdfree community. This started to change as the number of Linux distributions without systemd began to shrink dramatically. As of May 2025 it seems all of the OG distributions have converted, leaving mostly forked projects such as antiX and Obarun, or experimental distributions that are still under development and likely to have some rough edges. Void is one of the few exceptions as an independent distribution that’s been around since 2008 and is painless to install. Unfortunately nothing is ever perfect, so there were some issues which began to appear in what was otherwise considered paradise, and they weren’t exclusive to Void either.

Some of the tools I relied on were written in Python, but it wasn’t long before Python dependency hell reared its ugly head. At first it was youtube-dl and mps breaking frequently, but then it started affecting other things like the command line tool for reading Wikipedia which would eventually stop working entirely. At some point I tried building QGIS from souce because it wasn’t in the repository, but this led to hours of time going down the drain as I fought with pip, Qt and various python dependencies which for reasons unknown could not be installed. Later I would try installing Adafruit Blinka under Void running on a Raspberry Pi, but again there were unexpected issues with Python dependencies that prevented that from ever happening.

One of the odd behaviors I’ve noticed is the occasional kernel update causing yellow colored text to become orange, while blue text goes from a readable shade of blue to some hard on the eyes shade that’s almost impossible to read. This is something I never would have noticed had I not been using the console exclusively. For a while it seemed like there was a battle going on between some kernel developers since the colors would frequently alternate between these shades with each update. When this got old I found a program that can change the console colors on startup and added that to my .bashrc file.

Yet another issue that turned up was iwlwifi crashing with kernel versions after 4.19. This would take a few days to fix, requiring different drivers depending on the machine and chipset used. Usually it meant not being able to access 5GHz networks, but in some cases it meant no WiFi at all. The one problem which annoyed me the most was battery life. So when Void was first installed, the T430 could run for just over eight hours. Starting with kernel version 4.19 that runtime was reduced to about 5.5 hours or less, with the series 5.x kernel giving less than four hours. Being a rolling release I knew there was a chance of things breaking with each update, but it never occured to me that I should probably set the kernel to “fixed” so it wouldn’t be updated. By the time I noticed what was happening, the last good kernal was no longer in the repository.

Part 3 | Index | Home