<i>Then the question becomes whether an architecture obscures or exacerbates them, and also how it deals with them. The systemd object model does not fare well, as discussed.</i><p>What specific aspects of the systemd dependency model do you feel exacerbate race conditions and circular dependencies?<p><i>(Also compare a system like s6-rc or serel where dependency graphs are compiled from manifests and consistency checked before being applied. The graph is persistent configuration and not an ephemeral artifact.)</i><p>I have seen people discussing systemd error messages about circular dependencies online.  It seems that systemd does perform some checking, although I haven&#x27;t found documentation on what checks it does (I probably missed it).  I&#x27;m not sure how the dependency graph could be persistent configuration because hardware can be hotplugged these days.  For example, are you going to create nodes in the graph for all the hard drives that could possibly exist over the lifetime of the machine?<p><i>Systems having ordering dependencies does not inherently affect their determinism, the startup discipline (sequential v. parallel) primarily does, and then there are different ways to tackle parallelism. systemd&#x27;s execution model and transactional object system exacerbate non-determinism in ordering results.</i><p>If the sequential vs. parallel startup discipline &quot;primarily affects determinism&quot; won&#x27;t all these systems have the same issues with nondeterminism?  I don&#x27;t think anyone is seriously proposing starting up services on boot sequentially in 2015.  Or even when a USB stick is inserted.  Systems have 12 cores now and people can be very sensitive to boot times.<p><i>[lack of portability is] a horrible criticism of systemd. Any cursory examination of systemd will quickly reveal the task is next to insurmountable without doing what amounts to a full reimplementation.</i><p>I understand that systemd relies heavily on cgroups and other Linux-specific features for process isolation.  And the BSDs are also unlikely to accept GPLed code.  However, I feel like they could have at least discussed some way of reducing fragmentation here.  As it is, I would be amazed if at least one or two of the BSDs didn&#x27;t implement a similar init system to systemd in the next few years.  And as it is, they probably won&#x27;t share any code or concepts, unfortunately.