The Distro Landscape
A Linux distribution is a curated world — the same kernel and userland, packaged a hundred different ways. The differences aren't skin-deep: each family chooses a package manager, a release model, an init system, and a philosophy — stability vs freshness, handholding vs transparency, binary vs source. This chapter maps the families, the release models, and the choice that actually matters.
The family tree — five root stocks
Almost every distro descends from one of a handful of roots:
- Debian → Ubuntu → Mint, Pop!_OS, elementary, Kali, Raspberry Pi OS, MX... — the largest lineage on Earth.
apt,.deb, legendary stability, massive repos. - Red Hat → Fedora → RHEL → CentOS/Rocky/Alma — the enterprise path.
dnf,.rpm, systemd-native, SELinux. - Arch → Manjaro, EndeavourOS — rolling release, minimal base, AUR's vast user repo.
pacman. - Slackware → Slint, Salix — 1993's survivor, BSD-style init,
pkgtools, nothing hidden — this handbook's reference. - Gentoo → source-built everything — USE flags as configuration — the LFS-adjacent lineage.
- Independents — Void (runit+musl/glibc,
xbps), Alpine (musl+BusyBox, the container base), NixOS (declarative), openSUSE (zypper,rpm), Solus, Clear.
The release models — the real fork
| Model | Examples | The trade |
|---|---|---|
| Fixed/regular | Ubuntu LTS, Debian stable, Fedora | Tested snapshots — stability, slower freshness |
| Rolling | Arch, Gentoo, Void, Tumbleweed | Always-current — freshness, more breakage |
| LTS | Ubuntu LTS, Debian, RHEL | Years of security fixes, old software |
| Immutable/atomic | Silverblue, NixOS-ish | The rootfs as read-only image — rebasing not upgrading |
The choice is temperament: want it to work for years → Debian stable/Ubuntu LTS. Want it new → Arch/Fedora. Want to see it all → Slackware/Gentoo/LFS.
The family differences that actually matter
- Package manager — apt/dnf/pacman/xbps/pkgtools — the daily interface (chapter 20's table)
- Init — systemd (most) vs SysVinit (Slackware) vs runit (Void) vs OpenRC (Gentoo/Alpine) — the boot personality
- libc — glibc (standard) vs musl (Alpine/Void-musl) — the ABI difference that disqualifies musl hosts from LFS
- Release cadence + support length — Debian ~5yr, Ubuntu LTS 5-10yr, RHEL 10+, Arch forever-until-broken
- Philosophy — Ubuntu's polish vs Arch's minimalism vs Slackware's transparency vs Gentoo's build-it-yourself
The family detail — each root's character
Debian — the community pillar: apt+.deb, ~5-year support cycles, three branches (stable/testing/unstable), the constitution + social contract, DFSG purity. apt is the world's most-used package manager; Debian stable runs half the internet's servers. Ubuntu, Mint, Kali, Raspberry Pi OS descend from it.
Red Hat — the enterprise lineage: Fedora (community, leading-edge) → RHEL (commercial, 10-year support) → CentOS Stream → Alma/Rocky (the RHEL clones). dnf+.rpm, SELinux by default, systemd's home turf. The paid Linux ecosystem's center.
Arch — the rolling minimal: pacman+AUR, no defaults chosen for you, the Arch Wiki (the best documentation in the landscape — usable by any distro), KISS philosophy. The distro you configure, not the one that configures itself.
Slackware — 1993's survivor: the oldest living distro, BSD-style init scripts, pkgtools leaving everything visible in /var/log/packages, no dependency-resolution automation — you choose. This handbook's reference because it hides nothing. Slint is its accessible fork.
Gentoo — source-as-distro: portage/emerge, USE flags configure what compiles, every package built on your machine. The LFS-adjacent middle ground — automated compilation, your decisions.
The independents — Void (runit init, xbps, both musl and glibc), Alpine (musl+BusyBox — every Docker image's base), NixOS (declarative functional — /etc/nixos/configuration.nix is the whole system), openSUSE (YaST, zypper), Clear Linux (Intel's optimized), Bedrock (the meta-distro combining others).
The package-manager signatures
| Manager | Format | Distros | The syntax |
|---|---|---|---|
| apt | .deb | Debian/Ubuntu/Mint | apt install x |
| dnf | .rpm | Fedora/RHEL/Alma | dnf install x |
| yum | .rpm | legacy RHEL | yum install x |
| zypper | .rpm | openSUSE | zypper in x |
| pacman | .pkg.tar.zst | Arch/Manjaro | pacman -S x |
| xbps | .xbps | Void | xbps-install -S x |
| apk | .apk | Alpine | apk add x |
| emerge/portage | ebuild | Gentoo | emerge x |
| nix | .nar | NixOS | nix-env -iA x |
| pkgtools/slackpkg | .tgz/.txz | Slackware/Slint | installpkg x.txz |
| slackware's sbopkg | SlackBuilds | Slackware | source-builds |
The specialist distros — the ecosystem's branches
- Live/rescue — SystemRescue, Knoppix, Slackware install media
- Security — Kali, Parrot — pentest toolkits
- Containers/minimal — Alpine (musl+BusyBox — why it's in every Docker image), Distroless
- Accessible — Slint, Vinux, Sonar, Accessible-Coconut, TalkingArch
- Router/embedded — OpenWrt, Buildroot, Yocto
- Privacy — Tails, Qubes, Whonix
- Old hardware — antiX, Puppy, Tiny Core (~20MB)
- Enterprise — RHEL, SLES, Ubuntu LTS
- DIY — LFS itself — the terminal point of the lineage
The release-model detail — what each cadence means
| Model | Cadence | Support | The feel |
|---|---|---|---|
| Debian stable | ~2yr releases | ~5yr LTS | Ancient but never breaks |
| Ubuntu LTS | 2yr LTS + 6mo regular | 5-10yr | Polished LTS |
| Fedora | 6mo | ~13mo | Fresh, leading-edge, clean |
| RHEL/Alma/Rocky | 3yr | 10yr | The enterprise standard |
| Arch | Rolling | forever-until-broken | Always-newest |
| Gentoo | Rolling source | forever | Compile your own world |
| Slackware | years between | long | Stable, unchanging |
| Void | Rolling | forever | Lean + runit |
| Alpine | Rolling/6mo | — | musl+BusyBox minimal |
| openSUSE Tumbleweed | Rolling | — | Rolling tested |
| openSUSE Leap | aligned SLE | long | The stable branch |
| NixOS | 6mo channels + rolling | — | Declarative — reproducible |
| Kali | rolling | — | The pentest toolkit |
The init-system map
| Init | Distros | Character |
|---|---|---|
| systemd | Fedora, RHEL, Debian, Ubuntu, Arch, openSUSE | The standard — unit graphs, journald |
| SysVinit | Slackware/Slint, Devuan, antiX | rc scripts — readable shell |
| OpenRC | Gentoo, Alpine | Dependency-aware scripts — Gentoo's own |
| runit | Void, artix | The minimal supervision suite |
| s6 | some embedded | Modern supervision |
| busybox-init | Alpine embedded, initramfs | The tiny one |
The Devuan fork exists specifically because Debian adopted systemd — the init wars' living fossil.
The libc map — the ABI fork that matters
- glibc — the standard — almost every distro — the only LFS-compatible host libc
- musl — Alpine, Void-musl, some embedded — tiny, clean, not glibc-compatible — can't host LFS
- uclibc-ng — embedded
- bionic — Android's libc — different universe
The libc choice is invisible until it isn't — musl systems produce binaries glibc can't run and vice versa. For LFS: glibc only.
Choosing — the honest guide
| You want... | Choose |
|---|---|
| To learn Linux deeply | Slackware or Arch |
| It to just work | Mint, Fedora, Ubuntu LTS |
| A server | Debian stable, Alma/Rocky, Ubuntu LTS |
| The newest everything | Arch, Fedora, Tumbleweed |
| To build it all yourself | Gentoo, then LFS |
| Old hardware | antiX, Puppy, Debian + LXQt |
| Eyes-free | Slint, Vinux |
| Containers/Alpine-style minimalism | Alpine, Void |
Why Slackware — the handbook's argument
Slackware (1993 — the oldest living distro) is the choice because it hides nothing: the installer makes you partition, the init is readable scripts, the package tools leave artifacts visible in /var/log/packages. It's the LFS philosophy with a package manager — the perfect staging ground for chapter 2. Slint adds the accessibility layer that makes it the eyes-free path too.
The LFS endpoint
LFS isn't a distro — it's the source of the distro idea: a system you built yourself, no upstream. The landscape exists because someone else does the curation work — LFS shows you what that work actually is.
Exercises
- Place three distros you've used on the family tree — which root?
- Compare
apt,dnf,pacman,xbpson the same task — the syntax grammar. - Identify a musl vs glibc distro — and the consequence for LFS.
- Map a specialist distro to its niche — why that choice?
- Argue for a distro for a specific real use — which family and why?
Timeline
| 1993 | Slackware — the oldest living |
| 1993 | Debian — the community pillar |
| 1996 | Red Hat's RPM era |
| 2000 | Gentoo — source as distro |
| 2002 | Arch — the rolling model |
| 2004 | Ubuntu — the mass-market move |
| 2008+ | Alpine/void/NixOS — the independents |
| 2020 | immutable/atomic era begins |