Linux is an operating system kernel: the program that controls the CPU, memory, disks and network, and lets other programs use them.
A distribution packages that kernel with everything else you need: a shell, core commands, a package manager and default configuration.
┌───────────────────────────── Ubuntu 24.04 (a distribution) ─┐
│ bash, ls, grep, apt, systemd, … user-space programs │
├──────────────────────────────────────────────────────────────┤
│ Linux 6.8 the kernel │
├──────────────────────────────────────────────────────────────┤
│ CPU · memory · disk · network hardware (or a VM) │
└──────────────────────────────────────────────────────────────┘Where you will meet it
| Place | What runs there |
|---|---|
| Cloud VMs (AWS, GCP, Azure) | Ubuntu, Debian, Amazon Linux, Rocky |
| Containers | A small Linux userland (Alpine, Debian slim) on the host's kernel |
| Kubernetes nodes | Linux, with the kubelet and a container runtime |
| CI runners | Ubuntu images in most hosted CI services |
If you deploy, debug or automate infrastructure, you will spend time at a Linux prompt.
Common distributions
| Family | Distributions | Package manager |
|---|---|---|
| Debian | Debian, Ubuntu | apt |
| Red Hat | RHEL, Rocky, Fedora, Amazon Linux | dnf |
| Other | Alpine (containers) | apk |
The commands in this course work the same on all of them. The machine in your labs runs Ubuntu 24.04.
Ask the machine what it is
Two commands identify a Linux system:
cat /etc/os-release
cat prints a file. /etc/os-release names the distribution and its version.
uname -r
uname -r prints the kernel version. The distribution and the kernel have separate version numbers.