How Computers Work
Every performance mystery in the higher courses ends here. A JavaScript loop that is ten times faster over an array than over a linked list is fast because of cache lines and the prefetcher. A sort that runs faster on sorted input does so because of branch prediction. A tab that stutters on a 2 GB phone is being paged and throttled. A write that is acknowledged and then lost was never fsynced. This course is the machine those explanations refer to.
Eleven parts, bottom up. Transistors to logic gates to an ALU to the fetch-decode-execute cycle; the modern CPU with pipelines, branch prediction, out-of-order execution and SIMD; the memory hierarchy from registers to RAM and virtual memory; the operating system's processes, threads, scheduling, syscalls and interrupts; file systems and how SSDs really behave; networking from Ethernet frames to sockets and NIC queues; and a browser tab, seen as a process using all of it. Four further parts follow: how numbers are stored, concurrency in hardware, the GPU and the compositor, and measuring performance, each with numbers measured on this machine where it can.