Alpine Linux is Amazing

I use a lot of old machines. I'm typing this article on a Dell D630 running a Core 2 Duo T8300 with a whopping 4G of RAM. I have a second one with a T7700 that's otherwise identical. I love these old systems for a lot of the same reasons people love old cars. They're reliable in a way that a lot of new machines aren't, they have very nice keyboards (as laptops go), they come with trackpoints, and they're just modern enough to have SATA and gigabit Ethernet ports. On top of that, they're virtually e-waste, so parts are plentiful and cheap, and so are the machines themselves. Nobody would be happy running Windows 11 on one of these, even if they could, but I could throw one off a cliff and grab another for $20 on ebay. Last time I checked, the CPUs for these things run in the $3 range on ebay, and they're socketed, too. I'll stop just short of saying it's like owning an ultra-durable Framework laptop for a fraction of the price, but that's the general idea.

There's a catch, though. The more time marches on, the less compatible they become with modern software. Mainstream Linux distributions even have trouble on them, I'll say from my own experience that running Fedora (my usual distro of choice) on them becomes a complete mess after not very long.

I'm not sure what the reason for this is, because they're still targeting generic x86_64 processors, they don't need any fancy AVX instructions to run my desktop, and the system still works, it just has some performance issues.

I'm not opposed to doing something drastic like installing a copy of Puppy Linux on one of these machines, but I like having a good package manager and a decent suite of software without needing some split layered file system with image files, so I'd rather not.

Void Linux

This brings me to what I actually run on these systems day to day. I'll say that I started with Void Linux, having heard a lot about its minimalist design and light weight package manager. Also, it can run on musl rather than glibc!

I really do have to say that Void is an excellent option for old machines like this. I love Runit, it's absolutely my favorite init system short of systemd, and Void lets you fairly easily get yourself up and running with a complete desktop system. However, it doesn't have the best support for alternate keyboard layouts (at least in Musl installations) and it has some rough edges. It also does run faster than a lot of systems, but I think that's less a result of thoughtful design and more a result of the fact that the OS doesn't install the kitchen sink for you, it runs fairly lean.

Before I move on though, I'll say that Void runs well enough on old hardware that I'm not planning on removing it from the last Core 2 laptop I have running it.

Alpine Linux

I've seen mentions of Alpine for years. I first heard about it when I did a Docker tutorial at work about five years ago or so, and I wasn't super impressed at the time. It felt like a Linux distribution, just like anything else. The package manager was odd, the system was super barebones, and I didn't really fully understand it yet.

If you've been a reader of my blog for any length of time, you know I follow a few other people who have blogs. Admittedly I used the NextCloud reader for this and I've pulled my NextCloud server offline and haven't brought it back yet, so I'm probably pretty far behind by now, but still, I heard about Alpine again when reading Drew DeVault's blog. He wrote a post called Alpine Linux does not make the news which turned my head. I had known that he ran Alpine for a while, he's talked about porting things to run on Alpine before, but up to that point I had more or less thought of it as 'the Docker OS' and left it at that.

Hearing him mention he used it everywhere made me curious, so I grabbed a copy of the Alpine Extended iso and put it on one of my laptops. I don't remember which one, it may have even been the one I'm typing on now.

I was sold immediately.

It's hard to convey just how fast Alpine is when it's booted. To be fair, it does run OpenRC as its init system, so it doesn't boot particularly quickly, but once it's up it flies. Their package manager, the Alpine Package Keeper, is hands down the fastest one I've ever used. If you've used a Core 2 Duo system when it was new, you probably have pretty fond memories of it. This replicates that experience fairly closely with modern software. It doesn't make my Core 2 suddenly not a Core 2, YouTube is still a little bit of a struggle, and I don't suddenly have good drivers for the Nvidia Quadro NVS 135M, but I'm still very impressed.

Furthermore, Busybox makes for a much more competent set of core utils than it seems if you've only ever used it on Android. Ash is a fantastic shell, and while none of the utilities come with the feature set of the GNU ones, once you've gotten used to it, it rocks anyhow. This is such a tight system.

As a cherry on top, the system's Linux console obeys the keyboard layout you set when you install the OS, and they include the Workman layout, too!

Drawbacks

I don't love to dwell on the negative parts of systems I'm excited about, but here goes.

Alpine is difficult to set up the first time. There are a ton of different ways to set up a desktop on Alpine, and while the wiki will hold your hand through a lot of it, there will be times when you'll need a bit of configuration skill to set up a proper desktop system. For example, if you want to run Wayland sessions you'll need a seat manager. Alpine tells you about seatd and elogind. At first glance, they make it sound like both are roughly equally easy to set up, but elogind has more features. Maybe this is true, but I have had no luck with elogind. It's my own fault. I have not sunk time into it at all. However, nothing in the Alpine wiki suggested to me that there was anything more involved in getting elogind running compared to seatd.

APK is great for speed, and it hasn't left me with a broken system yet. However, it does get its speed from writing new packages directly on top of old ones. This makes updates significantly riskier than on some other systems, since a half-downloaded update will leave you with a system in between the older and the updated state. In practice, this hasn't bitten me. However, this prevents me from being comfortable displacing Fedora Atomic Sway for work.

Overall

Alpine is quickly winning me over. It gets frequent updates that tend to work, APK is fast, it sips power on my antique laptop battery, and it really does make my Core 2 feel just like it would have were it still running Windows Vista (except it's Linux, so it's substantially more flexible).

If you have an old system you still want to daily drive, a server you want to run as lean as possible, or if you're interested in a system that gives you a wrench and shows you the nuts and bolts, Alpine is virtually perfect.


Have a comment on this article? Send me an email!

links

social