I vaguely understand what Systemd is and its functions. Always made me curious though when I saw people complain about it and how it’s the literal devil. Why though? Only people who like it or are indifferent about it provide actual answers (that it’s rather bloated and tries to do too many things, though it’s easy to use?), whereas people who hate it just yell that they do so with foam coming out their mouth.
I’m not looking for a reason to hate it, I’m not even in a position to have an opinion about it. This is just sheer curiosity.
Historically, there were many reasons people disliked systemd, which are mostly irrelevant at this point.
systemd was a massive departure from how init and logging systems worked at the time. It meant a lot of re-learning for long-time Linux users and some people dislike change. At this point, it is ubiquitous so most people have learned how to use it.
People feared that systemd would homogenize Linux since most Linux distros of the time had init differences. In point of fact, this did happen. However, whether this is a good thing or a bad thing is matter of debate. Figuring out how to do service management used to require reading the documentation for each distro since it was done totally differently. Sometimes it involved running a command, creating symlinks or writing scripts. It was always an adventure. Now you can switch to any large mainstream distro and know how to get around since they are all using the same framework.
systemd logging moved from simple flat files to more complicated structures that people used to dealing with flat files were not comfortable with. At this point, I think it is clear that systemd logging has more advantages than disadvantages.
In the early days systemd was plagued by serious bugs which fueled the fire even more. At this point, systemd is much more stable.
There are, of course, some more legitimate concerns that remain
Some people fear that since the code base is very large and complicated it would be easy to hide malware or a backdoor.
There is a philosophical issue that unix is all about the creation of small, simple utilities that do a single job well and systemd is the opposite of that. In reality though, especially on the desktop, there are quite a lot of tools that no longer use that philosophy.
systemd is much more than just an init system and it is increasingly encroaching on more and more elements of the system. This is making Linux increasingly reliant on systemd which decreases optionality to some degree.
For me, personally, I don’t miss the pre-systemd days. As someone who uses lots of different distros, having a common framework for management is a bigger benefit than the trade-offs.
I was listening to a podcast that made this point, specifically talking about bash vs zsh vs fish and the fun of POSIX compliance and whether the strict adherence to the old do one thing and do it well idea might be holding back the platform in certain ways. It’s one of those interesting philosophical discussions that usually breaks down along the lines of old, experienced unix/linux guys from the early days vs people who have came into the platform later.
I suspect most people aside from the most die-hard old school unix guys are at worst resigned to the fact that systemd is pretty much a standard at this point.
Aha, so mostly it is disliked for what it used to be and certain people have a reason to avoid it.
Partially, this is why I asked. I don’t particularly understand the UNIX philosophy. Isn’t it beneficial for, at least, the core parts of the system to have some unity? Technology is getting increasingly more complex and demand for different things to be supported only grows, though I guess one of the charms of an open platform is diversity. While a lot of the technical parts still go over my head, the philosophical side of it is interesting.
Yep, pretty sure it is. While I had some issues with Pulseaudio, it’s fine. Also, isn’t every distro nowdays shipping it alongside another audio solution? ALSA? Or are those two serving different functions?
Well, point is that you can have both universally used program and follow UNIX philosophy, they doesn’t exclude each other
If systemd was broken on set of many small programs each of which are doing one job and do it good - there won’t be any controversy around it in the first place…
But that’s little to late for that
UNIX philosophy is brilliant, visit sometime the cutting edge of it which is suckless.org
UNIX philosophy, suckless, KISS principle - all revolve around the same idea of being as simple and effective as it is possible, so there won’t be any parts to really break / vulnerable - which is actually a very good idea.