Init Systems & Defaults Across Distros

Comparative Linux Distributions

Chapter 8 · Init Systems & Defaults Across Distros

Chapter 1's own table, Chapter 3's Fedora-first systemd history, and Chapter 5's OpenRC material have all pointed toward this chapter without covering it fully. This is where the init-system thread finally comes together — plus a related "defaults" story worth telling alongside it: why Fedora quietly made one of the more interesting filesystem decisions in recent Linux history.

systemd — Revisited, Not Retaught

systemd in Depth already covers PID 1, unit files, parallelized boot, and journald in full detail — this chapter doesn't repeat that. What matters here is who uses it: Debian and Ubuntu adopted systemd starting around Debian 8 / Ubuntu 15.04, Fedora adopted it earliest (2011, per Chapter 3), and Arch made it the default around 2012–2013. Three of this course's own four families converged on the same init system — a real, genuine point of agreement this course keeps returning to.

Ubuntu's Own Forgotten Alternative — Upstart

Before adopting systemd, Ubuntu ran its own genuinely different init system for nearly a decade: Upstart, an event-based init system Ubuntu itself developed and used from roughly 2006 to 2015. Ubuntu didn't simply wait for systemd to appear — it built and maintained an entirely separate alternative first, before eventually converging with the rest of this course's systemd-using families anyway.

OpenRC — The Real, Living Exception, Recapped

Chapter 5 already covered Alpine's own use of OpenRC as part of its broader minimalism theme. The core difference worth restating here: OpenRC uses simpler, dependency-based service scripts without systemd's own much larger bundle of additional components (no built-in equivalent to journald — Alpine uses traditional syslog instead — nor to logind, timedated, or resolved).

"Everyone uses systemd now" is a real, common assumption that breaks on Alpine
Running systemctl status against an Alpine machine doesn't fail with a helpful redirect to the right tool — systemctl simply isn't present at all, since Alpine runs OpenRC. The equivalent commands are rc-status and rc-service. This is the exact same category of mistake Chapter 1 already warned about for package managers — assuming a near-universal default is a true universal, and getting caught out on the one real exception.

Default Filesystems — a Related "Defaults" Story

Historically, ext4 has been the safe, boring default across most of this course's own families — and it still is for Debian, Ubuntu, and Alpine (consistent with Alpine's own simplicity-first theme from Chapter 5). Fedora broke from that pattern in a genuinely notable way.

Why Fedora defaults to Btrfs — a decision that actually fits everything else this course has covered
Starting with Fedora 33 (2020), Fedora's desktop variants default to Btrfs instead of ext4 — covered in full technical depth in Linux Filesystems 3. The reasoning ties directly back to Chapter 3's and Chapter 7's own material: Fedora's fast-cycle release model means more frequent updates, and Btrfs's own cheap, built-in snapshot capability makes rolling back a failed update dramatically easier than it would be on ext4. A distribution that changes more often genuinely benefits more from cheap, built-in rollback than one that rarely changes — Fedora's own default filesystem choice is a direct, sensible consequence of its own release-model identity, not an arbitrary preference.

Arch's own installer, consistent with Chapter 4's "you configure everything yourself" philosophy, doesn't default to any filesystem at all — the installer using it chooses explicitly, same as every other installation decision that chapter already described.

Init systemDefault filesystem
Debian / Ubuntusystemdext4
Fedora / RHELsystemdBtrfs (Fedora desktop, since F33); ext4/XFS common on RHEL
ArchsystemdNone assumed — chosen explicitly during install
AlpineOpenRCext4
Confirming which init system a machine is actually running
ps -p 1 -o comm= reports exactly what's running as PID 1 — systemd or openrc-init — a fast, direct check rather than assuming based on which distribution family a machine belongs to.

Hands-On Exercises

Exercise 1

Running systemctl status against a remote machine returns "command not found." Using this chapter's own warn-box, explain the most likely cause and the correct alternative commands.

📄 View solution
Exercise 2

Explain why Fedora's own decision to default to Btrfs makes sense specifically given what Chapters 3 and 7 already established about Fedora's release model, rather than being an unrelated technical preference.

📄 View solution
Exercise 3

Explain why Ubuntu's own history with Upstart is a genuinely interesting fact, rather than a minor footnote, given that Ubuntu ultimately ended up using systemd anyway like most of this course's other families.

📄 View solution

Chapter 8 Quick Reference

  • systemd — Debian/Ubuntu, Fedora/RHEL, and Arch all converged on it; systemd in Depth covers the mechanics in full
  • Ubuntu ran its own alternative, Upstart, for nearly a decade before eventually adopting systemd too
  • OpenRC (Alpine) is the real, living exception — rc-status/rc-service, not systemctl
  • Fedora defaults to Btrfs (since F33) specifically because its fast-cycle release model benefits from cheap, built-in rollback — a decision that follows directly from its own release-model identity
  • Arch's installer assumes no default filesystem at all, consistent with its own "configure everything yourself" philosophy
  • ps -p 1 -o comm= confirms which init system is actually running
  • Next chapter: Community, Governance & Support Models