Software Bloat Betrays the Raspberry Pi Zero W

I purchased a Raspberry Pi Zero W several months ago with the intention that it would replace the DOS/Windows functionality of my old Pentium 233MMX computer with equivalent Linux based software, while using waaaay less electricity! I also thought it would be a good idea to use the $14 CAD Pi Zero W for programming my Arduino UNO rather than any of my other much more expensive computers, because short circuits happen man!

The use case for my old machine is very limited, given that it exists only to satisfy my nostalgia for the first PC I bought myself. Of course back then I used that machine for all my computing needs, where as now I have a modern desktop and a smart phone to handle my “real computing”. So here is what I have been using my Deskpro for:

DOS: Word Perfect 5.1, Impulse Tracker, QBasic
Windows: Rebirth, Audacity, WinAmp, Wordpad, Notepad, MS Paint

It runs all of those things very well, to a point – it does not like to multi task (WinAmp playback will “skip” when computer is busy) and it very much prefers to run at 800×600 in Windows rather than at 1024×768, due to the low-end graphics card. But honestly, it is a totally usable computer that is excellent for hobbyist audio and game production. The only downsides are its physical size, the amount of electricity it consumes, and it’s cumbersome connectivity to the outside world (which in practical terms is its single rear USB port, as I don’t have any other computers that can read Iomega Zip disks or 3.5″ floppy disks).

Let’s compare the specifications of the Raspberry Pi Zero to my Compaq Deskpro 4000 desktop…

Compaq Deskpro 4000
– Intel Pentium 233MHz CPU with MMX
– 96MB of 66MHz SDRAM
– S3 Virge GX 4MB SVGA graphics
– SoundBlaster 16 audio
– Windows 98 SE / DOS 6.22 / FreeDOS 2.0

Raspberry Pi Zero W
– ARM6 BCM2835 1,000MHz CPU
– 512MB DDR2 SDRAM
– VideoCore IV 64MB HDMI graphics
– Some audio codec for sound…
– Rasbian Lite (Debian 10 ARM)

Architecture differences aside, it’s pretty obvious that the ARM6 CPU performs much faster than the older Intel CPU that is clocked 4 times slower. If it could run the same software, this ARM CPU would be roughly equivalent to an Intel Pentium III 600MHz, which is impressive given that the surface area of the whole Pi Zero “motherboard” is smaller than that of just the P3 CPU!

I’ve been using GNU/Linux since 1998 and I have installed and configured countless flavors of both Linux and Windows in that time, so it’s not like I had crazy expectations when going into this project; I knew that my desired functionality was available via native GNU/Linux software and all of those functions worked well on much lesser hardware, so what could go wrong!

Well, after testing every light weight system for XWindows and huge amount of software, the following is what would run acceptably…

DOS Program => BASH Program
—————————————————-
Imulse Tracker => MilkyTracker
Edit.com => Nano
Borland C => GCC
QBasic => BaCon

Windows Program => Xorg Program
—————————————————-
Windows => WindowMaker (JUST WM!)
Windows Explorer => Xfe
Audacity => Audacity
MS Paint => MT Paint
Winamp => Audacious
Netscape => Dillo
DOS Prompt => Xterm
Notepad => Leafpad
Wordpad => Nothing – even Abiword sucked!

I was really sad that IceWM, JWM, and Fluxbox all had problems of some kind, be it IceWM’s memory leak that brought the system to its knees after a few minutes or just being CPU heavy in the way that LXDE’s Lxpanel program is. Likewise Schism Tracker, which is based on the actual source code of Impulse Tracker, was completely unusable. Thankfully MilkyTracker worked great, provided it was run from a TTY and the XWindows session was not running in the background. The full GNUStep suite of software ran like a dog with three broken legs (as did LXDE, Xfce, and Mate), but its WindowMaker window manager ran quite nicely.

The performance of Abiword and Gnumeric (spreadsheet) was thoroughly disappointing, because they are the best light weight Word/Excel replacements for GNU/Linux, yet they were both slow enough to be completely obnoxious to use. Even going from an empty document to one with a few lines or cells was laggy and annoying. The same can be said for Geany, Mousepad, and literally every other graphical text editor in the Debian repo. Of course, Nano was fine and while I don’t use Vi, Emacs, or the text editor in Midnight Commander, I assume they would perform perfectly fine when run from a TTY (and probably fine when run in a terminal emulator).

On the upside, plain old Xterm ran so much better than any other terminal emulator, which was great as it’s also able to be customized to look similar to the fancier programs. Using WindowMaker as a little weird, as its UI paradigm was unfamiliar to me, but it was hands down the fastest windowing system to load, move, resize, refresh, and close programs. And bless its heart, Xfe was quick and feature rich file explorer that was a pleasure to use, though even the Windows 98 SE version of Windows Explorer is faster and more polished. Yes, LXDE’s PCManFM does work on the Pi Zero W, but it’s slow in that, “man this fucking sucks!” kind of way which is just not acceptable for everyday use.

Compiling small C programs in DOS and GNU/Linux felt the same, which is important when using BaCon (BASIC to C converter) rather than QBasic, because ultimately it compiles C code. GCC is a little slow in general, but it wasn’t any slower than compiling C programs in DOS 6.22 or FreeDOS 2.0 on the old machine. I would imagine that compiling a very large project would favor the Pentium 233MMX due to the optimization of the Borland compiler and the speed of the IDE Compact Flash storage, but it would really depend on the project. I was just farting around with Ncurses games on the Pi similar demo games on the PC.

QEMU and DOSBox both ran Impulse Tracker like crap and I didn’t even bother trying to run Rebirth with Wine, because there’s no just way that wouldn’t have been a shit-show.

On the whole, using the Raspberry Pi Zero W as a replacement for my old Win98 PC sucked, a lot. So much so that it’s really not even worth doing.

Why?

Because GNU/Linux is bloated as all hell and the Pi requires so much “magic kruft” just to boot that it’s not really possible to slim the system down much further than what the Raspberry Pi Foundation has already done in Rasbian Lite. The Linux kernel is bloated. Most GNU software is bloated. Binary blob drivers that do weird shit (like use the GPU to run boot code!) that requires the system to be configured in a specific manner… It all culminates into a poorly performing system that is overly complicated and underwhelming to use.

It’s just not a nice experience, especially when compared to the simplicity of the PC BIOS and installing/using either DOS or Windows on a PC. Heck, even Slackware 7 is more usable on my old PC than the very best setup of GNU/Linux on the Pi Zero and using XWindows in Slackware 7 is right bloody awful compared to Windows 95, let alone Win98 SE!

The sad thing is that it doesn’t have to be this way. It’s entirely possible to make a simple, FAST, and useful desktop operating system for single core ARM6 CPUs with 512MB of RAM and a basic graphics adapter with OpenGL ES support. RISC OS Open would be a good example, were it not for the lack of hardware support that prevents it from working properly and the lack software that accomplishes the required tasks; At least the software that does work in RISC OS works very well and the OS itself boots instantly! And so it bloody well should! If the Pi Zero W wifi, bluetooth, gpio, and audio (it’s too quiet) were fully functional in RISC OS Open that would absolutely make for a perfect, fast desktop OS on the wee little computer.

The Raspberry Pi Zero hardware is no slouch, but the software they give you for it fucking sucks.

Sadly, the Pi Foundation doesn’t care. I’ve seen forum posts by their engineers that say the Pi Zero isn’t meant to be a desktop and it’s not much of a conspiracy theory to say that they do this to sell you a more expensive Pi. You know, a Pi that is fast enough to cover up a lot of the problems inherent to modern GNU/Linux software. Why would the Pi Foundation write excellent software for their cheapest product when they can slap together free stuff made by volunteers and call it day? Who needs to take pride in their work when there’s free labor to exploit! Cynical? God damned right, but I’m also not wrong.

The Pi Foundation could easily put together a GNU/Linux based OS image that instantly boots the Pi Zero to a form of BBC BASIC which is capable of using all the Pi’s GPIO, camera, and other functions, and comes with a usable desktop that runs a WYSIWYG text editor and the Dillo browser for Wikipedia and forum access. They just don’t and that’s a crying shame.

Alrighty, I suppose this concludes my grumpy ramblings about the couple of months I spent dicking around with my Raspberry Pi Zero W. I could say a lot more, delving into great detail about various aspects of the experience, but I don’t feel like it. Sorry. It’s just not worth my time and really, it’s not worth your time either. Maybe between now and the end of life of the Raspberry Pi Zero w in 2026 we will see a renewed effort by the Pi Foundation on the software front, allowing we mere mortals to get more out of the machines, but I wouldn’t hold my breath. Until then, my interest in the Pi Zero will remain as something I can accidentally blow up when programming my $8 micro controller without breaking the bank.


I know this may seem like a pretty damning assessment of GNU/Linux itself and to be honest, it is. GNU/Linux peaked for me with Linux Mint 17.3 – everything after that is just worse in one way or another, be it regressive bugs, “change for the sake of change”, or outright unusable garbage in some instances. On the flip side, Windows 10 has improved tremendously, even to the point where I really don’t have any problems with it beyond it being ugly. That’s saying a lot, considering that I hated it a few years ago. As such, I basically use Windows 10 for everything other than audio recording, for which I still use Mint 17.3, because it “just works”. I have no desire to partake in the flavor of the month chasing, convoluted “that sounds cool, let’s do it” funk that has become of so many GNU/Linux distributions and the Linux kernel itself. I mean, you know it’s bad when it ends up being a better experience when using older GNU software in the latest version of Windows than it is when using the latest GNU software in the most up to date Linux distributions… I’m done, I no longer care; what I already have works just fine for me!

As for what I am going to do about using my old PC for nostalgia, I’m just not going to “do it” at all. The system took up way too much space at my desk and frankly I can just fire up a virtual machine from Windows when feel like using the old software.