Operating Systems
The software layer that manages hardware resources, provides abstractions, enforces protection, and schedules computation — the foundational runtime environment for all higher-level software.
Processes, Abstractions, and the Kernel Boundary
An operating system is the software layer that turns raw hardware into a safe, convenient, and efficient platform for running programs.
The irreducible elements are processes (units of execution and protection), threads (lightweight execution contexts), address spaces, the kernel (the privileged core), and the various abstractions it provides (files, devices, virtual memory).
Key structures include the scheduler, page tables, file systems, device drivers, and protection mechanisms. These compose hardware resources into the familiar computing environment we rely on.
This note connects strongly to CPU design (the hardware being managed), embedded programming (small OS-like runtimes), compilers (syscalls, linking, runtime), algorithms (scheduling, allocators), and the general theory of systems.
Protection, Isolation, and Resource Mediation
The kernel protection boundary, the process/thread model, virtual memory isolation, and the mediation of all hardware access are the foundational deductive principles. From them follow the need for system calls, context switching, page tables, and synchronization.
These axioms enable the safe multiplexing of hardware among mutually distrusting or independent programs.
Measuring Overhead, Fairness, and Stability
Context switch latency, system call overhead, cache behavior under load, I/O throughput, and fairness metrics are the observables. Scheduling policy, memory management algorithms, and driver quality have direct causal effects on application-visible performance and system stability.
Core OS Procedures
Context switching, demand paging, VFS operations, interrupt handling, and synchronization are the production-grade algorithms that every operating system depends on. Each has well-defined steps, invariants, and performance characteristics.
(See the detailed procedures in the YAML.)
Resource Management as a Controlled Dynamical System
An OS is a classic stock-and-flow system. The process table and runqueues are key stocks. Scheduling, paging, and I/O are flows that allocate and move resources. Feedback loops (fairness, memory pressure, protection enforcement) keep the system stable and responsive under varying load and adversarial conditions.
The Hard Engineering Problem
Building a production operating system is one of the most demanding engineering challenges in computing: extreme performance requirements, absolute correctness in the presence of concurrency and hardware quirks, decades-long compatibility constraints, and the need to support wildly different workloads while remaining secure and maintainable.
The substrate here captures the essential objects, flows, and trade-offs that every OS designer must navigate.
Connections
Operating systems are the runtime foundation on which almost everything else in computing runs — including the compilers, embedded systems, machine learning training loops, graphics pipelines, and scientific simulations we have studied in other notes. Its abstractions (processes, virtual memory, file systems) and mechanisms (scheduling, protection, drivers) appear throughout the atlas.
This note provides a dense, highly connected hub for the entire computer science and systems cluster.