As a nitpick, I think "cohesion" and "coupling" are terms coming more from software engineering, I'm not sure they are objects of study in the computer science branch of mathematics.
Which isn't even correct because systemd consists of many individual parts that do their thing and are replacable. But because they all share the "systemd-*" naming pattern people think they're the same piece of software.
Would be funny if people made the same complaint about the various GNU core utils because those are all installed from the same package on most (all?) distros.
Please show independent working implementations of those "replaceable individual parts". AFAIK people who tried to do it found too many obstacles like undocumented or inconvenient API.
Sure, but that's like saying my coffee machine also makes latte and hot chocolate. I guess what I'm asking is: do any of these taste bad, and how? Perhaps the parent had a few of these on his/her mind that could have been listed.
Unix philosophy has a reason. It allows to easily replace components and simplifies testing. AFAIK it's not easy to replace various parts of systemd, it's very monolithic and it does too many things.
> AFAIK it's not easy to replace various parts of systemd, it's very monolithic and it does too many things.
You can easily replace timesyncd with any NTP daemon. You can easily replace networkd with any other networking manager. You can easily replace timer units with cron. You can easily forward log messages to a syslog daemon. You can easily replace systemd-boot with grub or any other boot manager.
It should be pretty obvious how baseless the monolithic arguments against systemd are.
I know the philosophy. What I'm trying to get at is that perhaps the thing that came before was a set of things that didn't quite work together, so now they made something that does.
(And was just wondering if there was any specific thing the original parent wanted to replace.)
* https://news.ycombinator.com/item?id=23057364