The year was 2012 when I got my first my computer.
It was an Ahtec laptop which had quite some good specs for that time and considering how much it had cost. The laptop came with an Nvidia GeForce GT 525M graphics card, which performed way better that I could’ve ever dreamed of (once the propietary Nvidia drivers where installed, of course).
One may wonder why buy this laptop when probably there where much better options out there and why go for a lesser known laptop brand and not buy an HP, Toshiba, Dell or a Lenovo ThinkPad. Well, mostly because of money, but also because it was the only one at my local store which came with no OS installed by default, which meant there wasn’t a need to pay for a Windows license.
Also, by that time, I wasn’t using Windows anymore. In fact, I never really got to use Windows on a daily basis, as when I was young we didn’t have a computer at home and, when we finally got one, we changed its OS from Windows XP to Debian 5 (or maybe it was 4?) just a few months later because of how incredibly slow it Windows XP was. Debian gave our PC a new life. I’ve been a Debian guy ever since. This time wasn’t going to be different, so I installed Debian on my new laptop and, to no one’s surprise, it worked like a charm.
I’ve been using Debian for most of my linux years. I don’t know why but I’ve always felt that the robust feeling the distro gives me makes me feel at home. Not a lot of other distros make me feel like that. Debian is a hell of a solid linux distribution and I’ve only experienced a few major breakages over the years (and they have all been my fault). For some time I went back and forth switching between the “stable” and “testing” branches until finally just stayed on the stable one, as I don’t really need a lot of new packages (and those that I do need I can compile from source).
I never felt the need to switch away from Debian, but out of curiosity and after seeing other people’s opinion and different approaches about what a linux distro should and should not be, I decided to go and test some other distros. I played with Ubuntu, Void Linux, ArchLabs and even ditched Linux for some time to try some of the BSDs, only to come back to Debian.
systemd a.k.a The Antichrist
During my time learning and tinkering with linux, I got to try and see different approaches on software development in general. My love for minimalism grew through the years and I tried to replace most of my software with more minimalist options when it was possible. I moved from away from full blown DEs (such as GNOME and KDE) to standalone window managers (such as Openbox, CWM, XMonad, etc.) and started using more terminal-based applications. I found this new workflow to be more convinient for most of my use cases.
Some may argue that, when looking for minimalism, another distribution would’ve made much more sense than Debian. There’s Arch, Void, Gentoo, CRUX or even KISS Linux, to name a few, which let you build your OS from the ground up so you only keep whatever packages you choose to, achieving “peak minimalism”. Although I love Void and Gentoo and CRUX are distros I’d love to try on physical hardware one day, a similar (yet not quite the same) “build it from the ground” experience can be also achieved in Debian by unticking all the boxes refering to desktop environments in the “Software selection” step in the netinst installer, leaving only the base system 1.
With all this minimalism thing swirling around in my head I eventually came across Suckless’ software. I instantly loved dmenu, slock and some other tools by them 2 and I eventually found their opinions on different software and their opinion on systemd.
At that time, there were some linux related topics I still didn’t have a deep understanding of, being init systems one of them. Reading so much people complaining about systemd and talking about other init systems was the perfect excuse to start learning about init systems, investigate alternatives to systemd and to really consider if it was really that bad and if I should care at all about it being a giant peace of bloatware trying to do too much and not giving a single shit about the Unix philosophy 3.
The “No systemd” website came in handy to answer some questions, providing links to others people’s opinions and/or arguments against the init system, as well as a list of some Non-systemd distributions.
Another useful resource when talking about init systems and get some a basic idea of them all is the page in the Gentoo Wiki dedicated to comparing a handful of them.
So, after reading all those pages, did I get any conclusion? Well, not really. I don’t like basing my opinions solely on other people’s and I prefer to investigate the topics to form my own. This time wasn’t an exception.
What about Devuan?
A year or so ago, I tried out Void Linux on my laptop, which performed quite well. Void comes with the runit init system, so I thought it was time to give runit another try and get to know the deep-down essence of it.
In contrast to systemd, runit is designed as a minimal init system with the Unix philosphy in mind of “do one thing and do it well”. It actually is a collection of six utilities, each one of them designed to perform an specific task.
At that time my laptop was running NetBSD, as I had wanted to tinker with that OS for a long time, but I replaced it with Devuan 4 with the runit init system. I was going to use this laptop for doing actual work which involved programming, compiling and executing code written in Fortran used to solve integrals via numeric methods as well as studying physical models with methods such as the Metropolis Algorithm. These type of programs may take a lot of time and system resources when executing, so it was a must for the computer to be performant and usable and for the OS/distro to just “get out of the way”. I thought that Devuan would be the perfect field to try runit in, as I was already very familiar with Debian-based distros and I would need to spend much time setting the system up and learning its ins and outs.
Devuan is basically Debian without systemd, so software availability and hardware support is as good as it can get. Nvidia propietary drivers are available and easy to install and overall performance is great.
One of the most interesting aspects of Devuan is the so called “init freedom” approach they give. Considering that the users should have the freedom to choose whichever init system they prefer.
Conclusions and final thoughts
Then, does the init system really matter? Does it make a change performance-wise?
Well I’d say that the importance of the init system depends on who you ask and what they use their computer for. In case you want to build a career around Linux (in which you’ll need to work with different machines etc.), you may want to know systemd really well, as it has become a sort of “standard”. Most of the machines you’ll encounter in these jobs will probably run systemd distros. These include RHEL (since version 7), Debian (since version 8), Ubuntu (since 15.04), Fedora (15+) and others.
On the other hand, if you’re just a hobbyist computer user that likes to tweak with this sort of things, I’d say give one of the alternative init systems a go. Who knows if you’ll end up prefering it.
I honestly consider runit to be a better init system than systemd. I think runit is way superior, not only because it follows the Unix philosophy (although I think that is something that needs to be taken into account), but also because its size makes it quite faster than most other init systems out there and also more suitable for old hardware.
Some weeks ago, I saw a video of a linux youtuber somewhere on the internet where he said that, since he started getting familiarized with Unix-like operating systems, his computer usage has been progressing towards using the system in a more “low-level way”. That means throwing away GUI apps for CLI alternatives and using more minimalist software that just gets to the point of whatever you want to do and gives you more control on how to do it. I feel that, unintentionally, I’ve followed a similar path. Why is that? Well I’d say that, in my case, when using my computer this way, I can better understand how everything works. And I think this point is key when stating that runit may be preferable to something like systemd: its size makes it easy to understand and learn in a couple of hours.
I don’t think I’ll be moving from Devuan any time soon. I might even switch to Devuan in my main production machine, which has been running Debian for a couple of years now, when I have some time.
Resources and references
Other links you may wan’t to check if you’re thinking about moving away from systemd or simply want to know more about why people hate it:
Maybe the obtained result won’t be as minimal as the others mentioned before, especially when refering to Gentoo (mostly because of use flags) and CRUX, but it is more than enough for me right now.↩
Although I always tried not to fall for this “bloat” meme that seemed to be really common back then. I tried to search for minimalism just when possible and, let’s assume it, sometimes a little bloat is a small price to pay in order to have a usable program/tool/whatever.↩
From Wikipedia: “The Unix philosophy emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design.”↩