Comment by eliaspro
11 days ago
systemd is not a monolith.
It's a collection of losely coupled components and services of which basically every single one can be disabled or replaced by another implementation.
11 days ago
systemd is not a monolith.
It's a collection of losely coupled components and services of which basically every single one can be disabled or replaced by another implementation.
No it definitely is a monolith.
It's NOT loosely coupled in any way. Try running any part of the systemd software suite on an openrc system and see how that works out?
I have no idea why people are so insistent on claiming that its not a monolith, when it ticks off every box of what a monolith is.
Most systemd components do rely on some core systemd components like systemd (the service manager) and journald. I would say that a core thesis of systemd is that Linux needs/needed a set of higher-level abstractions, and that systemd-the-service-manager has provided those abstractions. The fact that other parts of systemd-the-project rely on those abstractions does not imply that the project is monolithic.
>Try running any part of the systemd software suite on an openrc system and see how that works out?
Well from this POV it's kinda openrc's problem if it doesn't. What about trying to run any part of the Openrc software suite on an Upstart system? The question why would anyone sane want to is rhetorical tho...
Why obsessing over whether systemd is monolithic and in what measure anyway? There certainly ARE optional systemd parts. So it's correct to say it's not entirely monolithic.
openrc-init can be used on an upstart system, the daemon manager itself can't but that's because you'd have two different daemon managers. Beyond that there aren't any openrc software components, because it was designed to be a modular init system that just handles what it was intended to handle.
The rest of the system for example chrony, sysklogd, cron, etc run fine on upstart systems, because they aren't tied to systemd and are fully modular.
It's okay to be a monolith, that doesn't make it inherently bad or anything, but we should be honest about it, and it does come with some tradeoffs.
Explain the existence of "elogind" and "eudev" then?
It might be the case that one can disable some components of systemd, on a systemd system. It is certainly not the case that they are "loosely coupled", or there would be no incentive to maintain forks of core systemd components with the sole and explicit purpose of decoupling from systemd.
In theory. In practice, systemd is a mess of different components that have subtle dependencies on each other. And while the core of systemd is solid enough, everything around it is not.
It's a collection of tightly-coupled components that are functionally a monolith because large distros tend to rely on the various components rather than allowing modularity.