An operating system is the core software layer that manages hardware resources, provides abstractions like processes and files, and mediates between user programs and the underlying machine. This cheat sheet covers the foundational concepts every systems programmer and computer science professional needs: process and thread models, CPU scheduling strategies, memory management from allocation to virtual memory, synchronization primitives, deadlock theory, inter-process communication, file systems, system calls, and disk scheduling. Topics progress from core abstractions through increasingly specialized mechanisms, with each concept linked to its authoritative primary source. Whether preparing for system design interviews, OS coursework, or low-level development, this reference provides the essential vocabulary and mechanics in one place.
What This Cheat Sheet Covers
This topic spans 13 focused tables and 110 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: OS Core Abstractions
The most fundamental OS concepts define what the operating system is and how it bridges user software and hardware. Understanding kernel types, execution modes, and the process/thread distinction is the prerequisite for everything else in OS study.
| Concept | Example | Description |
|---|---|---|
PID 1234 running chrome.exe | Program in execution; has its own address space, stack, heap, and OS resources. | |
Two threads sharing one process's heap | Lightweight unit of execution within a process; shares address space and file descriptors with siblings. | |
ls binary on disk | Passive, static executable stored on disk; becomes a process only when loaded and run. | |
Linux kernel managing fork() calls | Core OS component running in privileged mode; manages CPU, memory, I/O, and system calls. | |
Linux, FreeBSD | All OS services (FS, drivers, IPC) run in kernel space; fast but large attack surface. |