Ten levels
The levels of a computer
A computer is a stack of abstraction levels. Explore each one, from the apps you use down to the electrons.
10 levels of abstraction84 chapters planned
- L0Applications & the userWhat you see and do: clicking, typing, loading a page, and what each of those really sets in motion.
double-click → app - L1Problems & algorithmsBefore any language: what a computation is, how to solve a problem step by step, and how to measure the cost.
sort(list) - L2Programming languagesWhat you write: variables, functions, pointers, and what a compiler turns them into.
c = a + b; - L3Assembly languageOne line per instruction: registers, flags, jumps: the view debuggers and disassemblers give you.
add eax, ecx - L4Operating systemThe layer that turns one CPU into many processes: virtual memory, system calls, files.
syscall - L5Instruction set architectureThe contract between software and silicon: instruction formats, encodings, addressing modes.
01 C8 - L6MicroarchitectureHow one instruction becomes fetch, decode, execute: datapath, buses, caches and pipelines.
MAR ← rip · MEMR - L7Digital logicGates, adders, the ALU, flip-flops and memory cells, where 0 and 1 become arithmetic.
S = A ⊕ B ⊕ Cin - L8Devices & chipsTransistors as switches, CMOS gates, how chips are made, and the storage and I/O devices built from them.
NMOS · PMOS - L9Physics of computingThe real bottom: electrons, semiconductors and the field effect: how a bit is physically stored and moved, and the limits physics sets.
e⁻ · p-n