When the dominant Linux distributions adopted systemd, dissenters divided the distributions and new projects began. So what are your options if you̵
systemd: a short summary
Historically, the boot sequence in a Linux system was a replica of the initialization system introduced with System V Unix (SysV). The SysV-init system followed the Unix philosophy. When people refer to the Unix philosophy, they usually reduce it to the well-known sound bite “Do one thing, do it right”. And that thing was to start as the first process and then start other processes. It has also cleared out zombies on occasion.
SysV init did its job well enough, but it didn’t work too efficiently. It started processes serially, one after another. There was no parallelism. The design created a bottleneck. This was more or less masked by the speed gains of modern hardware, and it’s not like booting a Linux computer took endless time. But yes, technically it could have been made more efficient.
As with everything else in Linux, the users had a choice. Alternatives were available. Skilled users could configure their Linux computer to use a different init system, one that started processes in parallel and worked as they pleased.
Some of the options were:
- Upstart: This was an initiative developed by Canonical that was later taken over by the Red Hat family of distributions, including Centos and Fedora. Upstart is no longer in development.
- runit: This is an independent, cross-platform project that runs on FreeBSD and other BSD derivatives, as well as macOS, Solaris, and Linux systems. It has been adopted as the default init system or as one of the install time options on various Linux distributions.
- s6-Linux-init: s6 is a replacement for SysV init that tries to address the serial nature of SysV init and stay true to the Unix philosophy.
systemd is another replacement for SysV init, but it contains a lot more. It has modules that manage physical devices, user logins, network name resolution and much more – it consists of more than 70 binaries and more than 1.4 million lines of code. In comparison, SysV init for Arch Linux contains less than 2,000 lines of code. Systemd has clearly abandoned the Unix philosophy. Not only that, it further heresy of ignoring the Portable Operating System Interface (POSIX) standard completely.
The systemd arguments are some of the most heated I’ve ever seen in an open source community. (And that’s saying something.) The equally boisterous pro-systemd and no-systemd camps aren’t the only ones involved, of course. I speak to a lot of people who don’t even know that systemd is a thing, as well as plenty of others who have heard of it, but don’t know enough details to somehow form an opinion. Frankly, they don’t care. They just want things to work.
If you are not sure if you are on a systemd-based distribution, run it
ps command on process ID 1.
ps -p 1
If you see “systemd” in the answer, then you are clearly using systemd. If it says something else – usually ‘init’ – then you’re not.
RELATED: Why the Linux system is still divisive after all these years
Philosophy, architecture and technical quality
Different people object to systemd for different reasons. For some it is a disdain for the traditional Unix philosophy. While it is not a mandatory dogma, it is the “Unix way”. And it’s a way that has stood the test of time: tiny utilities that can be linked together so that their output becomes the input of the next process in the pipeline is a core part of what gives Linux its feel and character. This makes it particularly suitable for quickly putting together creative solutions for one-off or short-term requirements.
Others wondered about the design decisions behind systemd, the ‘software architecture’. Why include all that functionality that has nothing to do with a system boot? If those other elements need to be updated or improved, do that. But why integrate the entire package into one huge, interconnected set of applications?
Concerns have been expressed about the arrogant attitude of system developers towards bug fixes in general, and towards common vulnerabilities and exposures in particular. The more lines of code you have, the more bugs you have to fix. If those bugs are security related and have their own CVE number assigned to them, then you had to fix them yesterday.
Whatever the reason or reasons behind leaving a systemd-based Linux distribution, the question is, where are you going now? You may want to try something completely new. You may be looking forward to learning the ins and outs of a new distribution. On the other hand, you may not have the time or desire for another learning curve. You want to get back to work as quickly as possible on a system that feels as familiar as possible.
The Debian family: Devuan
If you are using Debian or any of the myriad Debian derivatives such as Ubuntu and its entire family of relatives, it makes sense to check out Devuan. Devuan is a fork of Debian, so almost everything will look familiar. The default shell is Bash and the package manager is
aptDevuan was spun off from Debian in 2014. It is solid and stable and has a thriving community.
If you prefer GNOME as your desktop environment, you have to do some extra work. GNOME is not offered as a desktop choice during installation. MATE, Cinnamon, XFCE and others are available, but GNOME will have to be installed manually once you boot your system.
GNOME has a number of dependencies on systemd components, namely the udev hardware device manager and the logind login manager. Replacements for this have been made by the Gentoo Linux developers.
eudev and elogind allow applications with hard dependencies on systemd to work as if systemd were installed. Anti-systemd purists object to that too, arguing that giving in to software encoded in hard dependencies on systemd is almost as bad as running systemd.
The choices of the init system on Devuan are SysV init or OpenRC.
The Arch Family: Artix Linux
Arch and Manjaro users may want to give Artix Linux a try. Artix is a fork of Arch that builds on the Arch-OpenRC project. The first release came in 2017.
The Arch Wiki contains instructions for replacing systemd with OpenRC, but it is not officially supported. Likewise, since Manjaro OpenRC support has been dropped, there is no Manjaro-derived distribution that is system-free.
So if you want to stay in the Arch universe you have to choose an Arch based fork like Artix that uses a different init system. Artix certainly delivers on that front. During the installation process, you choose from three different init systems. The choices are OpenRC, runit and s6.
All expected desktop flavors are available such as Cinnamon, MATE, XFCE and more. There are also test versions that support GNOME and the i3 tiling window manager.
The package manager is
pacmanYou can of course use that to install
yay, or one of the other Arch User Repository (AUR) helpers. The default shell is Bash.
It’s everything you love about Arch without systemd.
Red Hat and Fedora: PCLinuxOS
The systemd project is an initiative of Red Hat. The main system developers are Red Hat employees. It seems that for many in the Linux world, anything that comes out of the “corporate” Linux camps – Red Hat, Oracle, Intel, Canonical, for example – should automatically be mistrusted.
systemd has been described as – among other things – nothing more than a plot by Red Hat to transform Linux into something that fits the needs of their embedded operating system. If Red Hat needed a distribution tuned for embedded systems, it would be by far easier to just create one. You don’t need to convince Arch, Ubuntu and OpenSUSE to follow suit.
Since Red Hat is the reason why systemd exists, you obviously won’t find a Red Hat derivative without systemd. So wherever you go it will feel new and different. But at least if you want to stick with a distribution that uses the Red Hat Package Manager (RPM), you should check out PCLinuxOS.
The PCLinuxOS project began in 2003 as a fork of the now-defunct Mandrake Linux, just before Mandrake became Mandriva. The first release of PCLinuxOS appeared in 2007, so it is a long time older than systemd.
Although PCLinuxOS uses “.rpm” files, it manipulates them with its own package management software,
apt-rpmThis is modeled after the
apt-get command from the Debian world. A modified version of
synaptic is also provided that works with “.rpm” files instead of “.deb” files.
PCLinuxOS uses SysV init and offers a choice of Plasma, MATE and XFCE desktop environments during installation. There are a few “community remaster” editions that provide other desktop environments, including GNOME. The default shell is Bash.
Boot some VMs
The best – and really the only way – to see if you can handle a Linux distribution is to try it out. The easiest way to do that is on a virtual machine. It leaves your current Linux installation untouched. You can install and try as many Linux distributions as you want until you find the one you think you want to try. VirtualBox is perfect for this.
When you are ready to install your new distribution, make multiple backups of your current installation and then – and only then – install your new Linux.
RELATED: Beginner Geek: Create and Use Virtual Machines