Awesome-Linux-Minimalism
github.com
github.com
It was good to question systemd, but given its performance, transparency, and general ability to mostly stay out of the way, I wouldn't bring it up re: "minimalism," in the way the rest of the list is pretty minimalist.
This is not true. That is an aesthetic discussion. People dislike systemd because it is insanely bad software.
>I'd argue that almost everything systemd brings to the table in a default setup are all things you'd need anyway, minimalist or otherwise.
That is legitimately insane. No, you don't need the things systemd brings to the table. Systemd replicates multiple parts of what your systemd already does. E.g. it replicates the fstab by providing mount units. No normal user needs those, fstab works just fine, yet for some reason they include it anyway. Systems now can also boot your system, again it is repeatedly implementing already existing functionality. Same for DNS, surely you absolutely need an init systemd to handle DNS...
That is why people dislike it and why it is obviously not "minimalist" in any way, replicating already existing functionality is the exact opposite of
>They're just all handled by one overarching service, which I think is the real argument against systemd.
No. The argument is that systemd is really bad software which repeatedly reinvents already existing OS features in its own way, even if those features are near unrelated to an init system.
I don't care about "Unix philosophy", no system should be designed like systemd. People complain because it is badly not because it violates some barely defined rules about what "Unix should be".
I criticize systemd because for months my full time job was dealing with it. I suspect the minority of systemd haters are actually people like me, who actually had to do non-trivial things with it and realized how bad it is, if you actually have to do things with it.
Hating systemd is sort of a joke in certain Linux circles, where "Unix philosophy" and "minimalism" are tossed around. I don't really care about that discussion. Systemd is awful by any philosophy which aims to provide good software, for almost anything you can fill the word "good" with.
All of them are worse than what they are replacing - more limited and more buggy. Sometimes because they are just new, sometimes because the authors don't know what they are doing. In any case, why switch?
Regarding "part of", there's a nice motte and bailey argument from systemd that they are absolutely not parts of it when talking to critics, but when it comes to shipping and using them, they are.
It was especially bad when udev "moved in with" systemd, there were promises to keep it working without systemd. These were swiftly broken. Assuming good faith from that crowd is a mistake.
Fortunately, there is a fork of udev that works without systemd, and you know what, it's not even a difficult one. So what were the strong technical reasons for adding the dependency?
For example, suckless claims "pid 1 does DNS" and link to https://cgit.freedesktop.org/systemd/systemd/tree/NEWS?id=2d... to prove this. That NEWS entry is about software not part of pid 1, but I guess reading is incompatible with a minimalist approach.
Yes, systemd stays out of the way of most users since most users interact with it in exactly two ways starting/stopping and enabling/disabling services. Every other init system has a near identical API for those two things.
This does not expose the user to the underlying insanity and the web of nonsense when you actually have to "develop" for systemd. Having to do mostly that for a living made me hate my job and significantly pushed me towards quitting, which I eventually did. Yes, it is that bad. Avoid it.
Does it matter if there is a systemd daemon reload in the unit file after creating the mount units?
Other init systems are just shell scripts calling shell scripts in some order, it is very easy to reason about that. Obviously it would work.
I guess that's a great example of how things can be amazing for one use case and horrid for others.
I usually interpret having trouble reasoning about something as meaning whatever I'm doing is Not Best Practice for the tool I'm using.
A lot of the time, I find there is a best practices solution I could do instead. When there isn't... yeah, that is in fact annoying and obnoxious.
The reason for this are systemd transactions. And how they intersect with units. A daemon reload recreates the transaction, this allows e.g. new unit files to be correctly integrated into the dependency tree. As it turns out recreating the transaction from inside the transaction is not something systemd can do.
I don't even have a technical judgement on this. It doesn't seem like that severe of a limitation, but my point is that it is extremely complicated and that systemd does not work the way people think it does.
The real problem with systemd is that it often isn't the tool you should be using and that is what people are actually objecting too. Having a tool be extended to do things other tools are already doing for no conceivable reason. Why is the init system also the fstab, I don't think anyone would be able to actually explain coherently the thought process behind that.
It's also far easier to edit with automated tools than fstab, since it's separate files and there's no ad hoc text parsing to change one line.
I am guessing they didn't do it in a more modular way because the target audience doesn't really have any intent of swapping out many pieces of the OS, and it would be extra work to implement?
If you want to do stuff the devs intended, in the way they intended, it's fantastic, but it seems to disappoint people who need or want to customize.