Title : On Devuan, Debian and bringing my laptop back to life
Author: cyr4x3
Date : 21 April 2022
Tags : linux
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.
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.
Comparison of init systems (Gentoo Wiki)
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.
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.
Announcement of the Debian Fork (devuan.org)
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.
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.
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:
Inferencium Network: systemd insecurity
Lanodan's Cyber-Home: SystemD eated su
Benno Rice: The Tragedy of systemd -- BSDCan 2018
[^1]: 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.
[^2]: 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.
[^3]: 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."