NOTE
1.1 Operating Systems
What an operating system manages: processes, memory, devices, files, protection, and the boundary between applications and hardware.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What Is an Operating System?
An operating system sits between applications and hardware. It provides abstractions such as processes, virtual memory, files, sockets, and devices while coordinating access to CPU, memory, storage, and peripherals.
The OS is both a resource manager and an abstraction layer: applications do not normally manipulate raw CPU scheduling, page tables, disk controllers, or network devices directly.
2. Major Responsibilities
2.1 Process and Thread Management
The OS creates, schedules, blocks, wakes, and terminates execution contexts. See Programs, Processes, and Threads.
2.2 Memory Management
The OS gives each process a virtual address space, maps virtual pages to physical memory, handles page faults, and reclaims or evicts pages when needed. See Virtual Memory.
2.3 Device and I/O Management
Drivers and kernel subsystems expose devices through stable interfaces and coordinate interrupts, DMA, buffering, and I/O scheduling.
2.4 File and Storage Management
The OS provides files, directories, permissions, caches, and persistent-storage abstractions over block devices.
2.5 Protection and Isolation
Privilege levels, address-space isolation, permissions, namespaces, and resource controls prevent one workload from freely corrupting another.
3. System Calls
Applications request privileged kernel services through system calls, such as file I/O, process creation, networking, and memory mapping.
Linux is one concrete operating-system implementation used throughout these notes.