Learning paths · Skills · Intermediate

Linux: what happens under your program

Follow your program from the shell that starts it through system calls, files, memory and sockets to the service manager, limits and namespaces that run it in production, and know which tool answers which question when something goes wrong.

0 of 12 done

The map

  • Not started
  • In progress
  • Done
  1. 01ProcessesStart, wire up, signal, configure0/4
  2. 02Files and usersOne tree, and who may touch it0/2
  3. 03The kernel boundarySystem calls, memory, sockets0/3
  4. 04Running in productionServices, isolation, triage0/3
  5. 05Next: system designSame ideas, at service scale

The examples ran in an Ubuntu 24.04 container (kernel 6.12 under Docker Desktop on a Mac) after apt-get install procps strace iproute2 sysstat dnsutils python3 curl. To follow along, start one with docker run --rm -it --cap-add SYS_PTRACE ubuntu:24.04. PIDs, addresses and timings will differ on your machine. Each topic ends with what is different on macOS.

Where this path leads