DNS, All the Way Down: From getaddrinfo to an Answer
A program has a name and needs an address. Between those two facts sit eight stages, and the first three of them happen entirely inside your own machine, before a…
Memory, All the Way Down: From malloc to the OOM Killer
Eight stages between a program asking for memory and something being killed for it. Killing is the last one, and almost everything interesting happens before it. This follows a single…
Running PostgreSQL Properly: A Transaction’s Path to Durability
Eight stages between a client sending COMMIT and data you could still restore a year later. The client waits on exactly one of them. This follows the whole path on…
Containers, All the Way Down: What docker run Actually Does
A container is not a kernel object. It is an ordinary process with nine things done to it first. This follows docker run all the way down: the registry request,…
The Shell, in Depth: From Enter to Exit Status
Between pressing Enter and getting your prompt back, the shell rewrites your command line in six stages before anything runs, finds the program four different ways, and puts it in…
The Life of a Write: From write() to the Disk
Your write() call returned successfully and nothing is on the disk. Seven layers sit between that return and durable storage — page cache, filesystem, device mapper, block layer, device cache…
From Power-On to a Login Prompt
Eight handoffs stand between the power button and a shell, each one to a program that knows almost nothing about the last. Firmware, shim, bootloader, kernel, initramfs, the switch to…
Permissions and Privilege, Properly
Six independent layers stand between a process and a file, and every one of them can say no on its own. Mode bits, ACLs, capabilities, LSMs and user namespaces —…
The Life of a Packet: What Really Happens When Your Application Sends Data
From write() to the wire and back again — sockets, the routing decision, netfilter, conntrack, ARP, queueing disciplines, offloads and the container detour. The long version, because almost every hard…
A Second Machine: Redundancy, and Whether You Actually Need It
Two servers is not twice as reliable. It is twice as much to maintain, plus a class of failure that only exists when there are two. Here is how to…
