Before i start, I’d like to take a minute to describe my journey with Linux. I started using Linux around May 2004 with the release of Fedora Core 2. Before that point I’d never heard Linux/UNIX or even the concept of an operating system outside of Windows. While i still use Windows to this day (gaming) i have never been a fan of windows, and was always tweaking the layout, performance and visuals. I used to heavily modify windows with tools such as Window-Blinds and start menu replacements.

Then i found Linux. While i initially started out using Fedora 2 in a dual boot configuration, my experience was limited to booting into Linux, dabbling around for a couple of hours then returning to windows. I had no idea how to actually use fedora. Then a few months later Ubuntu 04.10 Warty Warthog was released. I swapped over to Ubuntu mainly due to the free CD’s that Ubuntu used to ship. I quickly put Ubuntu on my desktop and laptop and started using Linux more and more. While i still booted into windows for gaming purposes, i used Ubuntu as my primary desktop for web browsing, video watching and everything else.

Distro Hopping

While i found Ubuntu much better than windows, particularly with the gnome 2 desktop paradigm, i wasn’t truly happy with my experience. Ubuntu still had some of the same problems that windows had primarily that it felt bloated. While i can appreciate this is as ridiculous as it sounds I’ve always hated clutter and bloat. While Ubuntu is a relatively lightweight distro (particularly during the early days), there was a lot of functionality installed that i didn’t need or want. I don’t have a printer, or scanner or the need for most of the applications that came bundled by default. While i could just choose to ignore them i had this nagging feeling that all of this stuff was just there.

So i started distro hopping, and i jumped from distro to distro constantly never fully happy with any distro. Distributions that stood out were Gentoo and openSUSE. Gentoo felt like everything i wanted from a Linux distribution - full control over everything in the system. The biggest problem i had was that it took so damn long to compile everything. Back then i had a relatively low-end system, with a low amount of ram and a slow hard drive and i preferred the gnome desktop over KDE, and XFCE. This took days to compile, and left me without a working computer. OpenSUSE as the opposite of what i wanted, a bloated system using KDE, however i liked how different it was to most Linux systems and it has and still does have something about it that i like. However i still mostly stuck with Ubuntu, trying to remove packages from the base install and often breaking it requiring a reinstall.

Enter Arch

Then late 2007 i found Arch Linux.

WOW, here was a distribution that felt like it was made for me.

A lightweight system where i can control every aspect of the system without compiling everything. It had an excellent community and a BSD style init system. System configuration was all done from a single file (rc.conf). I stopped hopping, and became a full Arch Linux convert. I full embraced the Arch way, and ditched large bloat apps in favour of smaller more nimble software choices. I ditch gnome for openbox, nautilus for pcmanfm, rhythmbox for mpd and ncmpcpp. I started using the terminal more and more, and gui applications less and less. Over the years i swapped window managers, file managers and applications. That is until i settled upon my favourite setup - a tiling window manager (mostly i3), st terminal, tmux, vim and chrome.

I’ve stuck with Arch Linux from 2008 till very recently, occasionally trying other distros but always returning to a minimal Arch system. I’ve even used an Arch system in a production environment for years without any issue (actually no issues, where as the ‘recommended’ rhel/cent system has been a massive pain - more on that in another blog post). Even when Arch started recommending pulseaudio, and swapped to systemd i embraced it. Looking back i prefer the older BSD style init system and configuration compared to the fragmented approach of systemd, but at the time swapping over to systemd wasn’t a concern. I still like systemd and would rather deal with it over other init systems in a production environment, but having tried Void Linux recently i realise i don’t want to run systemd on my machines.

Void

I recently purchased a small Acer ES1-132 laptop for messing around with as a big of a toy. The reason being that while i use Linux at work, its a production environment so i cant mess around with it too much and my home system isn’t Linux friendly (Creative sound card) so dual booting isn’t an option. Also just lately with the recent Ubuntu shakeup and a couple of new Linux distro choices, its a good time to be a distro hopper. I tried windows on this machine for a couple of hours and updated the bios but then quickly wiped the drive and installed Solus. I’m a big fan of Solus and what Ikey has done and i would really like to run Solus. It just isn’t the distro for me. I tried a few more distros, including the Ubuntu 17.10 beta, Ubuntu Mate (to see what all the fuss is about), Manjaro, Gentoo Suse, Fedora etc. I tried alpine Linux because of how different it is to other distros (lightweight musl system not using systemd), and liked it but it wasn’t quite what i wanted, but i liked that its different to everything else. Someone suggested trying Void musl, as it has a similar approach to alpine but its a little more desktop friendly so i booted it up.

Holy crap the system felt quick. Void has a similar approach to Arch, the default install is the bare minimum for a Linux system. No desktop manager, Desktop environment, or any apps. This felt comfortable, so i quickly added my apps of choice including i3wm and st. I was pleased to see most of the applications i wanted straight in the box without having to use the AUR, but there are some gaps.

This is an entry level laptop, so i had low expectations of how this system should run. Its a dual core n3350, with 4GB ram and 32GB eMMC storage. I chose it due to the ability to upgrade to 8GB of ram and add an internal 2.5” SSD.

Most of the Linux systems i tried worked well and quickly with no real slowdown or complaints but none of them felt snappy. Even Arch felt the same as other distros, but Void musl runs really well on this machine. To void’s credit, i did install using F2FS and reduced the swappiness which i didn’t do with other systems. But it was enough that i took notice, and it reminded me of the early days of Arch Linux. The system uses the runit init system, and is by far the most simple init system i have ever tried with services being controlled by a symlink from /etc/sv to /var/service. Don’t want to run a service, just delete the symlink in /var/service. It also runs with very few services out of the box. systemd has a load of services running out of the box, and isn’t particularly lightweight init system.

While i found the musl based Void very nimble, the lack of support for running certain applications (mostly java for minecraft and Spotify) i swapped to the glibc version of void. I can’t tell much difference, although i appreciate there probably isn’t any difference between Ubuntu gnome on this machine and a lightweight musl void system with the placebo effect making me think the musl system is lighter. As of writing this, my Void has 6 daemons loaded

  • acpid
  • agetty-autologin-tty1
  • agetty-tty2
  • dhcpcd
  • udevd

That’s it, and i could get it down to five if i remove the tty2 service (i very rarely need to recover to tty2). I use wpa_supplicant to manage the wireless network and dhcpcd has hooks to automatically connect to a wireless network automatically, or swap to Ethernet should i plug my laptop in. Instead of using pulseaudio, i use alsa with apulse. This is far simpler to use, and i can’t tell any difference. Because I’m not using pulseaudio or any other application or service that needs it i don’t need to run dbus, or console-kit. My system automatically boots into my desktop of choice via xinit. I initially installed i3wm, but decided to try other lightweight tiling window managers, and settled upon bspwm, sxhkd and tdrop. This system feels very snappy, and you wouldn’t tell its a low end celeron chip with just 4GB of ram. Even with 10-20 tabs in Firefox there isn’t any noticeable slowdown even when scrolling on large websites. I have even installed Maya 2018 and Houdini 16 on this machine and both work very well considering the specs. Overall i am very impressed with Void, and for the foreseeable future has taken over Arch Linux as my distro of choice.