The quality of this list feels greatly diminished by the very first bit about "no systemd?"
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.
Agreed, this feels like someone put an argument about tabs vs spaces at the top of the description for an editor. Like yes, you will have to choose whether to use systemd, but the argument for or against systemd doesn't feel like it belongs here in a list of 'minimalist user space programs/services'. From my perspective the only lens you can view this through that's even closely related is that systemd doesn't follow the Unix philosophy of 'do one thing and do it well', but that's not exactly an argument for or against minimalism. 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. They're just all handled by one overarching service, which I think is the real argument against systemd.
>Agreed, this feels like someone put an argument about tabs vs spaces.
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".
The people who hate systemd are effectively a loud minority, and for some reason always seem incapable of discussing the supposed issues with it without resorting to hyperbolic statements like “legitimately insane”.
I absolutely did include explicit problems with systemd in my post. And I wasn't hyperbolic, what systemd is not explainable by any rational thought. If you want to tell me why your init system should also be an fstab and a DNS provider go ahead.
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.
A DNS resolver, NTP client and boot loader as part of the init system does seem to be a bad idea, no?
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?
Well, they link to suckless for reasons why systemd is bad. So they most likely have no idea what they are talking about as suckless is known for being mostly factually incorrect.
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.
It is a low quality outdated list, but systemd should be on top of any minimalist list. It is the most violating Linux software of KISS/UNIX principle. So if anything putting it on top does validate the list.
Systemd is really bad and if you have a list listing minimalist stuff everything that uses it should be excluded. Having it at the top is a good thing.
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.
That's been pretty much the opposite of my experience, but I can definitely see why it would make a minimalist, or a natural first principles thinker miserable.
To be perfectly honest I don't actually know... I usually find things work About Like You'd Expect and the thing you're trying to do is in fact possible, but that's not really an answer.
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.
I assume they want fstab integration because the goal is to have everything as fully declarative, and also because mount units have a much more explicit, spelled out syntax.
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.
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.