Linux Foundations — What Linux Actually Is

The operating system that powers servers, homelabs, security tools, and the entire internet.

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 ]—•*·≈

- Crafted by Axiom|Spectre