<i>What specific aspects of the systemd dependency model do you feel exacerbate race conditions and circular dependencies?</i><p>Well, the article discusses all of that...<p>(Speaking of which, JdeBP helpfully linked to Upstart&#x27;s pre&#x2F;postconditions not being a proper dependency model, per the developers&#x27; testimony, and as I asserted.)<p><i>I&#x27;m not sure how the dependency graph could be persistent configuration because hardware can be hotplugged these days.</i><p>The idea of device units is not well borne out, as I mentioned. You don&#x27;t need to create an object type out of a udev handle to order after devices or trigger hotplug events (the device node manager itself does fine, of course in the case of systemd, udev <i>is</i> part of the project, so...)<p><i>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><p>Not necessarily. It could either be more manageable if there wasn&#x27;t so much indirection, see above (I&#x27;m afraid you just didn&#x27;t get the article, and your original summary certainly implied as much). Additionally, one could forfeit being <i>aggressively</i> parallel for a more conservative approach like in OpenRC, s6-rc or even Upstart.<p>* 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>Parallelism is but a small part of the complicated topic of boot time optimization. And yes, sequential strategies can still be really fast. Much of the speed increase in modern systems is not from parallelism, but forfeiting the overhead of the shell interpreter in favor of direct execution. Checkpointing can do far greater wonders for your boot times than parallelism can, anyhow.<p><i>I understand that systemd relies heavily on cgroups and other Linux-specific features for process isolation.</i><p>That&#x27;s only scratching the surface of Linux-specific features in systemd.<p><i>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.</i><p>What will come of the BSDs is uncertain. launchd will be used in iXsystems products like PC-BSD and FreeNAS, and there&#x27;s not much &quot;code sharing&quot; you could do there - it&#x27;s already a complete product being ported.