Overview
An operating system's job is to let multiple programs safely share one machine's hardware — CPU,
Processes & Threads
A process is the OS's unit of isolation: a running program with its own private address space,
Scheduling
There are almost always more runnable threads than CPU cores. The scheduler is the kernel
Memory Management
The OS gives every process the illusion of a large, private, contiguous address space, even though
Concurrency & Synchronization
Threads within a process share memory, which makes communication cheap but introduces a real hazard:
Inter-Process Communication
Processes are deliberately isolated from each other — that's the whole point of giving each one its
OS structure
Every kernel design question people argue about — "is Linux old-fashioned," "why does Windows put