open atlas
↑ Back to track
Linux, the operating system LIN · 01 · 02

Distributions

A Linux distro is the same kernel wrapped in different userland choices: GNU coreutils, a C library, a package manager, and defaults. Debian/Ubuntu, RHEL/Fedora, and Arch share the kernel but differ in package format, release cadence, and philosophy.

LIN Junior ◷ 19 min
Level
FoundationsJuniorMiddleSenior

“Install Linux” is a meaningless instruction until you answer: which Linux? Ubuntu? Debian? Fedora? Arch? AlmaLinux? They all run the same kernel released at kernel.org — but beyond that, they are genuinely different systems. The differences matter: a package that installs with apt on Ubuntu requires dnf on Fedora; a security patch cadence that works for a startup’s server may be wrong for a bank’s. Understanding what a distribution actually is lets you reason about which one belongs in which situation — and stops you from cargo-culting the wrong docs.

Goal

After this lesson you can describe what a distro adds on top of the Linux kernel, explain what differs between the Debian/Ubuntu, RHEL/Fedora, and Arch families, and choose between them based on release cadence and support model.

1

“Linux” is a kernel, not an operating system. The kernel at kernel.org handles process scheduling, memory management, device drivers, the syscall interface, and nothing else. It does not include a shell, a text editor, a package manager, or a C library. To get a usable system you need userland — and that is what a distribution provides.

The userland layer almost universally includes:

  • GNU coreutilsls, cat, cp, grep, awk, bash and ~100 other essential utilities
  • glibc (or musl for minimal images) — the C standard library that every compiled program links against
  • A package manager — the mechanism for installing, updating, and removing software
  • Defaults and configuration — which init system, which default editor, which network manager, which security policy

The kernel is a small fraction of what you actually interact with day to day.

2

The Debian/Ubuntu family uses .deb packages and apt. Debian is the parent — known for stability and a very long release cycle (roughly two years between major releases, then multi-year security support). Debian stable is conservative: packages are old but battle-tested.

Ubuntu is a Debian derivative that ships every six months (LTS releases every two years with five years of security support). Ubuntu made Linux palatable for desktop use and is now the dominant choice for cloud servers. When you provision an EC2 instance and pick “Ubuntu 24.04”, you are getting the Debian ecosystem with Ubuntu defaults.

# Debian/Ubuntu package operations
sudo apt update           # refresh the package index
sudo apt install nginx    # install a package
sudo apt upgrade          # upgrade all installed packages
dpkg -l nginx             # inspect an installed package
3

The RHEL/Fedora family uses .rpm packages and dnf. Red Hat Enterprise Linux (RHEL) is the commercial, enterprise-support product. Fedora is the upstream playground where new features land first before being hardened into RHEL. CentOS was a free RHEL rebuild; after its end-of-life, AlmaLinux and Rocky Linux took its place.

The RHEL family dominates regulated industries (finance, healthcare, government) because Red Hat provides long-term commercial support contracts and FIPS-certified builds. When you see “RHEL 9”, that is a ten-year support commitment with a single kernel version that gets backported security patches rather than version bumps.

# RHEL/Fedora package operations
sudo dnf install nginx    # install a package
sudo dnf update           # upgrade all installed packages
rpm -qi nginx             # query an installed package

The package format (.rpm vs .deb) is the most visible difference, but the deeper difference is the support model and update philosophy.

4

Arch Linux is the rolling-release extreme. There is no “Arch 2024” — you install once and the system updates continuously to the latest upstream versions. Packages arrive hours after upstream releases. This means cutting-edge software and frequent breakage — useful for developers who want new kernel features, not for production servers.

Arch also has near-zero defaults: no installer GUI, no pre-configured services, no predefined user. You build the system you want from scratch. Its value is pedagogical as much as practical: you learn exactly what each component does because you chose it explicitly.

# Arch package operations
sudo pacman -Syu          # update the whole system
sudo pacman -S nginx      # install a package

Manjaro and EndeavourOS are Arch derivatives that add an installer and saner defaults.

5

What is identical across all distros. The Linux kernel itself — the same binary from kernel.org — behaves identically regardless of which distro ships it. A bash script that uses only POSIX features and standard GNU tools runs on all of them without modification. Syscalls are stable: code that calls read() and write() compiled on Debian runs on RHEL without recompilation (the ABI is guaranteed). Systemd is the init system on all major distros. /proc and /sys expose the same kernel data everywhere. The knowledge in this track is distro-portable; we will call out the few places where it is not.

Worked example

Choose the right distro for two scenarios.

Scenario A: You are deploying a payment-processing microservice for a bank that requires a vendor-supported OS with a five-year security patch commitment, FIPS 140-2 compliance, and a change-control process that prohibits unexpected package version bumps.

Answer: RHEL (or AlmaLinux/Rocky Linux as free alternatives). The ten-year lifecycle, stable package versions with backported patches, and Red Hat’s commercial support contract all match the requirements. Fedora’s six-month release cadence is a disqualifier.

Scenario B: You are spinning up a personal development server for a side project and want the latest kernel features (eBPF, io_uring improvements), a wide package selection, and no licensing cost.

Answer: Ubuntu 24.04 LTS or Debian 12. Both offer recent kernels, a large ecosystem, no cost, and multi-year support. Arch is tempting for freshness but adds maintenance overhead without a clear benefit over Ubuntu for this use case.

Why this works

macOS is not a Linux distribution — it is a BSD-derived Unix (Darwin kernel). It has no apt, no dnf, no pacman. Homebrew is a third-party package manager that works on macOS but is unrelated to the Linux packaging world. When this track says “install with apt”, that is Debian/Ubuntu only. On your Mac dev machine, use Docker to run a Linux container if you want to follow along with apt commands exactly.

Common mistake

“Just use the latest kernel” is a common mistake for production servers. Most distros ship a kernel version that is well behind upstream, then backport security fixes to it. A Debian 12 server running kernel 6.1.x will receive security patches for years — but those patches are backported, not version upgrades. If you manually install a mainline kernel from kernel.org, you are on your own for security patches. Stick with the distro-provided kernel unless you have a specific, justified reason not to.

Check yourself
Quiz

A bash script that calls only standard GNU tools (grep, awk, sort) works correctly on Ubuntu. What happens when you copy it to a RHEL server?

Recap

A Linux distribution bundles the Linux kernel with userland (GNU coreutils, glibc, a package manager, and defaults). The kernel is identical across distros; the differences are in packaging format (.deb vs .rpm), package manager (apt vs dnf vs pacman), release cadence (stable/LTS vs rolling), and support model (community vs commercial). Debian/Ubuntu (apt, .deb) dominates cloud servers; RHEL/Fedora (dnf, .rpm) dominates enterprise and regulated industries; Arch is rolling-release for developers who want cutting-edge and control. Syscalls, the GNU toolchain, and systemd work the same on all of them.

Practice

Start at the top. Tasks go easiest → hardest: recall a fact, apply it to a case, then a senior-level stretch. Open one, attempt it, then reveal.

recallapplystretch0 of 4 done

Something unclear?

Ask a question about this lesson. Questions are anonymous and go straight to the author to make the lesson better.

shortcuts expand
search
K
prev piece
k
next piece
j
cycle tier
t
this menu
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.