The Life of a Login: Seven Stages Between a Password and a Shell
Somebody types a password and gets a shell. Between those two events sit seven stages, several configuration systems that do not know about each other, and a set of decisions…
Structured learning paths.
Somebody types a password and gets a shell. Between those two events sit seven stages, several configuration systems that do not know about each other, and a set of decisions…
It is the oldest interview question in web engineering, and the answer everybody links to is roughly a decade out of date. The canonical write-up on GitHub still describes the…
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…
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…
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,…
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…
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…
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…
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 —…
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…
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
These cookies are needed for adding comments on this website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
Jetpack's built-in visitor analytics. It records page views, referring sites, search terms, and outbound link clicks, and also carries the shared visitor-tracking library used by Jetpack Instant Search and WooCommerce Analytics.
Service URL: automattic.com (opens in a new window)
You can find more information in our Cookie Policy and Privacy Policy.