Lessons learned developing systemd in stage 1
When NixOS boots up, the first userspace code that the Linux kernel runs is called "stage 1". Its main job is to configure the file systems used by the OS before starting it. This can get quite complicated, and systemd is here to help.
I will describe the goals of rewriting stage 1 to use systemd. I will also talk about how these seemingly small choices, like how to handle the first few seconds of boot, or the choice of my online username, can have unexpectedly significant results.