Systemd Sucks

I know that the topic of Systemd has been discussed since the early days of its conception and that most Linux users don't care (or even know) about init systems, but with its inclusion in virtually almost every Linux distribution, there has to be a constant need to talk about it every now and then. Even these days, discussions keep resurfacing about the issues of Systemd (such as its enforcement of the dystopian "age verification" bills, something that has got nothing to do with its job as an init system). This piece of software is so bad that it literally breaks almost every single point in Better Software.

Systemd doesn't comply with the Unix philosophy ("do one thing and do it well"). Its responsibilities immensely exceed that of an init; it handles power management, device management, system logs, mountpoints, disk encryption, socket API, network config, login and session management, GPT partition discovery, bootloading, container registration, hostname, locale and time management (NTP), among many other things. One of the consequences that this brings is that plenty of non-kernel upgrades will require a reboot when using Systemd (this was a Windows-exclusive feature until now, wasn't it?), and there are also a lot of scenarios in which Systemd can crash and break the whole OS, because it's managing too many things. It seems that the only thing that Systemd is still missing is a good init system...

Besides, since Systemd was made by Lennart Poettering (literally Satan incarnate and a current Microsoft employee who also made PulseAudio, Avahi, and other trash that unfortunately invaded desktop Linux to the point of no return) and is maintained by Red Hat (the well-known "open-source" parasite corporation owned by IBM), it increases the dependency on corporations. The code is so bloated and extremely complicated, with over 1.2 million lines of code (at this point, we should start calling it "GNU/Systemd/Linux"). Having a huge codebase makes it impossible for one person to maintain or review it, making necessary a dedicated team of developers who are in charge of specific parts of it, increasing our dependency on Red Hat.

The bloat not only affects old hardware, but also introduces major privacy issues hidden behind the code and not known to many; an example is the fact that Systemd fallbacks to Google DNS servers, and it's hardcoded (so you have to recompile Systemd from ground up to change this).

Systemd is destroying Linux diversity and modularity as well. Despite all the hate it has received, Systemd has been widely adopted by many projects. The first major distribution that started using it was Fedora, which is Red Hat's community distribution. Since then, Debian, openSUSE, Arch Linux, and thousands of other distros have adopted Systemd as the only init choice, which is devastating for the diverse Linux ecosystem. What's even worse is that tons of pieces of software have started relying on Systemd, causing issues for those who refuse to use it. For example, GNOME (the most popular desktop environment) requires Systemd since 3.8, but really, the GNOME project has always been Red Hat's dog (along with freedesktop.org).

Systemd is also Linux-only, so it's incompatible with other Unix-like operating systems, the BSD family for example. Most alternative Linux init systems could be ported to other Unix-like systems, but with Systemd, portability is impossible (which is honestly an advantage, since this assures us that we'll never see Systemd in any BSD or other kernels, relieving! :3).

There are quite a few inits which aren't Systemd; OpenRC, Dinit, runit, S6, SysVinit, Shepherd, Cinit, and sinit (Suckless' init system). Although all major Linux distributions have moved to Systemd, there are a lot of maintained distro forks that come without it:

Though these Linux distros are the only ones that really matter (as I mentioned on the Linux Distributions Guide), there also exists a lot of other independent distros that don't use Systemd, like Void (a rolling release distribution that uses runit, and you can choose between the glibc and musl versions), Chimera (an ultra-fascist distro using Dinit and musl), Slackware (one of the first distros originally developed by Linus Torvalds that uses SysVinit), and GNU Guix (a 100% free as in freedom GNU/Linux distribution that uses Shepherd), among others (all of them are trash, though). Plus, the wide range of BSDs still exist (such as OpenBSD, FreeBSD, GhostBSD, etc.), which, again, are all free of any Systemd code.