of you may not know this, but I am a bit of a computer geek. I like building. upgrading, and maintaining computers, try new operating systems, push hardware when it can be pushed, and explore new operating systems when it makes sense.
When Linux was new, I tried it. I tried SuSELinux, Red Hat 8, and also the early versions of Ubuntu. I settled on Ubuntu for a few machines for a while, because I believed it was solid and reliable enough to make sense.
Then systemd came along.
At first, it worked, and I found it to be quite usable. Except my PC would crash for no reason, nuke something, or stop a service I was hosting, which it had never done before, and all of it had a clear, definite point-of-origin: systemd.
Curious, I delved in.
I wish I hadn’t. Massive mailing list flame wars, forums crawling with fierce, expletive-laden tirades for and against systemd. But I was, essentially, an end user, and such things did not interest me.
Then I started playing with network services.
I was learning how to setup network services like DNS, DHCP and even a RADIUS server for my WiFi. During my learning process, I had absorbed how to read network interfaces in linux as eth0, eth1, wlan0, etc. Until something else came along, brught to you by systemd: “predictable” network interfaces.
This would be a topic for another rant, but I will recap by saying nothing worked. All the services had been configured (by me) to use eth0, etc. and I found out that this new, “modern” way changed interface names in the most remarkable way.
How in Hell’s name is enp5s0 predictable or readable? Hint: It’s not. I, the user, have no idea which interface is it. The system may know, but I sure in Hell don’t. Also, why does it change randomly? That is neither predictable nor readable to me.
I wanted eth0 back.
fortunately there is a way.
In your /etc/default/grub file, which you have to edit as a privileged user, where there is this line:
GRUB_CMDLINE_LINUX=
append the following:
net.ifnames = 0 biosdevname = 0
Save, then rebuild grub:
sudo update-grub for Debian-derived distros, or sudo grub2-mkconfig -o /boot/grub2/grub.cfg for Red Hat based distros. If you use systemd-boot, you’re on your own. I refuse to touch it on principle.
Best part of it is that names like enp5s0 are not set by the Linux kernel: the kernel names interfaves eth0, eth1, wlan0, etc. It is udev (a service adjacent to systemd that manages devices) that renames eth0, etc to the enp5s0 mess. I know this because I saw dmesg, and dmesg reports:
eth0- renamed to enscrew-u-peasant by udev policy.
So, it’s not even a structural feature to the Linux kernel: it’s a rename made because it can be made, it’s opacity for opacity’s sake, introduced by cavalier programmers with cavalier attitudes and egos that are in need of a major adjustment. For all I know, enp5s0 means “screw you, peasant.”
One could argue that renaming perfectly logical interface names to some nonsense that looks made up by a kindergarten kid already means “screw you, peasant,” albeit in passive-aggressive fashion.
ok, finished with the nitpicking.
What turned me on systemd, at last, is this page where the cavalier attitude I mentioned earlier is in full display. I cannot trust an init system (that’s essentially a Linux system’s ignition key) that not only takes over a slew of other things init systems are not meant to manage (the thing is 1.2 million lines of code long compared to a little bit under 2000 lines of code in sysvinit, the OG Linux init system) but also leaves not one, but five critical vulnerabilities and exploits (CVEs) unpatched, one of them since 2013.
That’s thirteen years to patch a serious security hole in your code. That alone makes me wonder what other corners they cut. Add to that the fact that systemd logs are binary adds to the technomancer bullshit. You should be able to read systemd-produces logs with vi, vim, or nano, not with a special program that is part of the systemd walled garden of opacity and too-large-for-their-own-good attitudes.
So, unless I absitively, posolutely, certifactorily must use a distro with systemd because of compatibility reasons, I prefer using either Devuan, Artix, or Void Linux. At least they don’t have systemd to make my life a nightmare.
