Decision 0002
Init is systemd
Architecture decision record 0002: Init is systemd
Context
The init system determines service supervision, sandboxing primitives, boot, logging, credential storage and boot assessment.
The three plans
- Grok: dinit or s6; systemd only if vendor GPU units force it (Q-4).
- Fable, Codex: systemd, implied by NixOS.
Decision
systemd. It follows from NixOS, and it supplies what the nervous system needs without building it:
unit sandboxing directives for every daemon, journald as the structured log source for facts,
socket activation for the stem and sessions, systemd-boot with boot counting for the immune
system, systemd stage-1 with native TPM2 unlock, systemd-creds for sealed secrets, and
transient units for per-user execution.
Consequences
- Boot-time and idle-memory budgets are measured and published rather than assumed small.
- The stem’s operations map onto
switch-to-configuration-ng,bootctl,systemd-bless-boot. - dinit/s6 expertise is not needed; systemd’s is.
Alternatives rejected
- dinit / s6 / runit: smaller, but would require a non-NixOS base or a fork of NixOS’s module system, and would lose boot counting, credentials and sandboxing directives.