Title : On Devuan, Debian and bringing my laptop back to life

Author: cyr4x3

Date : 21 April 2022

Tags : linux

Introduction

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.

Suckless' 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.

No systemd website

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.

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.

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.

Init freedom (devuan.org)

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:

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."