Linux Distribution
A Linux distribution, or distro, is a ready-to-use version of Linux. Linux on its own is just the kernel. A distribution adds everything else you need: a desktop, apps, an installer, and a way to get updates. Ubuntu, Debian, Fedora, and Linux Mint are all distributions. They share the same core but differ in how they are packaged and how often they update.
A Linux distribution combines the Linux kernel with a userspace (GNU coreutils, a C library, systemd or another init), a package manager, a release and support policy, and defaults chosen by its maintainers.
Major families:
| Family | Examples | Package format | Tool |
|---|---|---|---|
| Debian | Debian, Ubuntu, Mint, Pop!_OS, Raspberry Pi OS | .deb | apt |
| Red Hat | RHEL, Fedora, Rocky, AlmaLinux | .rpm | dnf |
| Arch | Arch, Manjaro, EndeavourOS | .pkg.tar.zst | pacman |
| SUSE | openSUSE, SLES | .rpm | zypper |
| Independent | Alpine (musl, apk), Gentoo, NixOS | varies | varies |
Release models:
- Fixed release: versions on a schedule with long support (Ubuntu LTS, Debian stable, RHEL)
- Rolling release: continuous updates, always current (Arch, openSUSE Tumbleweed)
What differs between distros: package versions, default filesystem and security module (AppArmor vs SELinux), config file locations, and support length. Skills transfer, but commands like apt vs dnf and paths like /etc/sysconfig vs /etc/default do not always.
Source: Wikipedia: Linux distribution
Identifying a distribution
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 26.04 LTS"
ID=ubuntu
ID_LIKE=debian
VERSION_ID="26.04"
# Which package manager is present?
$ command -v apt dnf pacman zypper apk
/usr/bin/apt
# Install the same tool on two families
$ sudo apt install htop # Debian/Ubuntu
$ sudo dnf install htop # Fedora/RHEL Pick one distribution and learn it well before hopping. BNLC uses Ubuntu LTS because it has the most beginner documentation, long support, and shows up constantly in cloud images and tutorials. On the job you will also meet RHEL-family servers in enterprises and Alpine inside containers. /etc/os-release is the first file to read on any unfamiliar Linux box, because it tells you which docs and commands apply.