Structural and semantic deficiencies in the systemd architecture for real-world service management
This is a in-depth architectural critique of systemd. It claims to be the first purely technical review of systemd internals, and provides a detailed analysis of several components. It criticizes on the basis of ordering related failures, a difficult to predict execution model, non-determinism in boot-order, as well as several other points.
Though many users would perceive the long processing pipeline to increase reliability and be more "correct" than the simpler case, there is little to acknowledge this. For one thing, none of jobs, transactions, unit semantics or systemd-style dependencies map to the Unix process model, but rather are necessary complications to address issues in systemd being structured as an encapsulating object system for resources and processes (as opposed to a more well-defined process supervisor) and one accommodating for massive parallelism. Reliability gains would be difficult to measure, and that more primal toolkits like those of the daemontools family have been used in large-scale deployments for years would serve as a counterexample needing overview.
(Score: 2) by opinionated_science on Friday October 16 2015, @01:31PM
at least it gets the ball rolling...
I am a systemd user, and finally after a few years, I get its quirks.
My 2 cents, is that it is definitely an improvement over scripts as it permits *user* level service control. For things such as multi-seat display this is critical.
The one feature I would hope systemd would adopt, is the equivalent of "serialise" used for debugging. In other words a slow-and-steady-boot to deliberately.
I believe the current system it is possible to prescribe a deterministic boot, if you specify it as such.