@ariadne The granularity of binaries on disk is a very partial indication of the modularity of the software. systemd has good granularity, but it is NOT modular.
Modularity, or lack of, is a property of the *design* and architecture of the software. When I say "systemd is not modular", I mean that its architecture is hostile, it centralizes control and disempowers users.
When I look at one part of systemd, say, one given binary, say I want to replace it: can I do it with knowledge that is purely local to this binary? And the answer is no: the necessary knowledge is still the full
global workings of systemd.
Another example is the sd_notify mechanism, which assumes that the fd you send the notification to (via an overengineered, bloated protocol) is a socket. This assumption means that the only way to implement readiness notification management in systemd is to have a central supervisor for all the services, which is the exact opposite of modularity.
@ska @ariadne OK, I did not expect to read that today: that sd_notify() is "over-engineered" and "bloated".
It's *literally* a frickin env-var-like text string in a datagram to an AF_UNIX socket whose path is passed in an env var.
I mean, I can explain the protocol this in a single (one!) sentence.
If that's "bloated", then I think you are smoking some really really really good dope, man. No shame in that, but maybe don't comment on the Internet when you do ;-)