A linear, sequential boot and startup order is easier to deal with

November 12, 2021

By and large, the people who develop Unixes have had a long standing interest in faster boot times. Fast boot times look and sound good, and because parallelizing actions during boot is one obvious way to speed it up, these faster boot times often come along with a more sophisticated view of service dependencies, which is useful at other times. Although Linux's systemd is the current poster child of this effort, it predates systemd; predecessors include Upstart (on Linux), various reinvented service management frameworks, and Solaris's SMF. There is only one small issue with all of this enthusiasm, one that is unfortunately often ignored or downplayed, and it is that a linear startup order is often easier to deal with.

A linear order is straightforward to see, understand, reason about, and generally to manipulate. It's easy to know what order things will happen in and have happened in, which avoids surprises during boot and helps diagnose problems afterward; you're much less likely to be left trying to sort out what happened when from boot time logs. It's nice to to understand the dependencies of services when that information is reliable, but we have a great deal of evidence that taxonomy is hard for people, and dependencies are a form of taxonomy. When dependencies are inaccurate, they can be worse than knowing that you don't know that information in the first place.

A strictly linear and sequential boot order is not as fast as a parallelized boot. But it's a lot easier to set up, verify, and troubleshoot when something goes wrong. These are much less obvious virtues than a fast boot and can't be benchmarked or reduced to a simple number for comparison, but they are virtues.

(As a final strike against it, a linear, sequential boot system is boring. There is very little exciting development work to be done on it, and if you want to speed it up you're probably going to have a long boring slog of finding little delays here and there and trying to persuade people to convert shell scripts into programs.)

I like Linux's systemd in general, but I do miss having a linear, sequential boot order. It made my life easier, even if the common implementation of it in System V init style systems left a number of things to be desired.

(For instance, System V init could often make it difficult to re-order or insert services, and especially to manage this over time, package upgrades, and so on. Systemd's concept of drop-ins is quite valuable.)

Written on 12 November 2021.
« I'm unsure of the security of simultaneous multithreading on modern x86 CPUs
Considering "iowait" CPU time and CPU utilization »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Nov 12 23:47:49 2021
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.