Act IV of VII
Orchestration
The OS is a referee that makes every program believe it has the whole machine to itself.
On this page
The working table of contents.
- Why an OS exists — you want to run many programs on one machine, and they'd destroy each other without a referee.
- Processes and threads — a process is an isolated running program, a thread is a worker within it. Why isolation matters (one crash shouldn't kill everything).
- Virtual memory — every process thinks it has all the memory. The OS + hardware translate fake addresses to real ones. Paging as the mechanism. This is the single most important abstraction in computing.
- Files and filesystems — files are named byte sequences. The filesystem is how the OS maps names to bytes on disk. Directories are just files that list other files.
- I/O — how programs talk to the outside (keyboard, screen, disk, network). Blocking vs non-blocking. The key insight: I/O is slow, so the OS switches to another process while waiting.
- The syscall boundary — programs can't touch hardware directly. They ask the OS through system calls. This is the security wall.
- Containers — not a new OS, just clever use of two Linux features (namespaces for isolation, cgroups for limits). Why this matters: package the environment with the program.
Going deeper
Branches that earn their own article.
- Scheduling algorithms (CFS, EDF, real-time).
- Virtual memory deep dive (TLB, page tables, huge pages, NUMA).
- Filesystem internals (ext4, ZFS, Btrfs, copy-on-write).
- I/O models (select, poll, epoll, io_uring, kqueue).
- Linux kernel architecture.
- Device drivers.
- IPC mechanisms (pipes, shared memory, message queues).
- Microkernel vs monolithic kernel debate.
- Container runtimes and OCI spec.
- Virtualization (hypervisors, Type 1 vs Type 2).