Linux: The Engine of the Internet
Linux isn't just another operating system — it's the backbone of modern infrastructure. Most servers, networks, appliances, routers, and cloud platforms run Linux underneath. If you're building a homelab, you're running Linux whether you realize it or not.
Your homelab stack → almost all Linux: Proxmox VE → Debian-based Linux hypervisor Docker containers → Linux kernel namespaces Nginx Proxy Manager → runs inside Linux Docker container Authelia → Linux Go binary in Docker Cloudflare daemon → Linux service (cloudflared) Raspberry Pi → Raspberry Pi OS (Linux)
The Architecture — Kernel, Shell, Userland
Linux is layered. The kernel is the core — it talks to hardware, manages memory, and runs processes. Everything else (the shell, utilities, applications) lives in userland on top of it.
┌─────────────────────────────┐ │ Applications (nginx, ssh) │ ← userland ├─────────────────────────────┤ │ Shell (bash, zsh) │ ← how you interact ├─────────────────────────────┤ │ System Libraries (glibc) │ ├─────────────────────────────┤ │ Linux Kernel │ ← core OS ├─────────────────────────────┤ │ Hardware (CPU, RAM, disk) │ └─────────────────────────────┘
The Filesystem Hierarchy
Linux uses a single unified tree starting at / (root). Knowing where things live saves you hours of searching.
/ ├── etc/ → system config files (edit these to configure services) ├── var/ → variable data: logs, caches, mail queues │ └── log/ → system logs (auth.log, syslog, nginx/) ├── home/ → user home directories (/home/michael) ├── root/ → root user's home directory ├── opt/ → optional/third-party software ├── usr/ │ ├── bin/ → user commands (ls, grep, curl) │ └── sbin/ → system admin commands (iptables, ip) ├── tmp/ → temporary files (cleared on reboot) ├── proc/ → virtual FS: live kernel/process info └── sys/ → virtual FS: hardware and driver info
Distributions — Which Linux?
Linux is a kernel. A distribution (distro) packages it with tools, a package manager, and defaults. Different distros are optimized for different use cases.
Distro Package Mgr Best For ────────────────────────────────────────────── Ubuntu apt Servers, VMs, beginners Debian apt Stable servers, Proxmox base Alpine Linux apk Docker containers (tiny image) Fedora dnf Workstations, cutting-edge Arch Linux pacman Advanced users, rolling release Rocky/AlmaLinux dnf RHEL-compatible enterprise Homelab recommendation: Ubuntu 22/24 LTS for VMs, Alpine for containers, Proxmox (Debian) as hypervisor.
Package Managers — How Software Gets Installed
Forget downloading installers. Linux package managers handle installation, updates, and dependencies from trusted repositories.
# Debian/Ubuntu (apt) apt update # refresh package index apt install nginx # install nginx apt upgrade # upgrade all packages apt remove nginx # uninstall apt search nginx # search available packages # Query installed dpkg -l | grep nginx # is nginx installed? which nginx # where is the binary?
≈·*•—[ A|S ]—•*·≈