Official page
Modern Operating Systems
Book page on Pearson.
Modern Operating Systems
Authors: Andrew S. Tanenbaum, Herbert Bos
Publisher: Pearson, 2023 (5th Edition)
Length: ~1136 pages
Processes and threads, scheduling, memory, file systems, virtualization and security.
OriginalKey topics
Processes and planning
Context switches, CPU scheduling, priorities and multitasking.
Memory and virtualization
Paging, segmentation, virtual memory, address spaces.
File systems
Design, caching, metadata, reliability.
Parallelism
Threads, synchronization, deadlocks and race conditions.
Safety
Access patterns, isolation, privileges and attacks.
System services
Drivers, IPC, system calls and resource management.
OS architectural pillars
Scheduling
How the OS allocates CPU between threads and processes.
Memory
Virtual memory, pages, caches and address management.
I/O
File systems, disks, drivers and buffering.
Isolation
Users, rights, sandbox and security.
System call path
User space
The application calls a system function.
Kernel boundary
Transition through syscall, checking rights and context.
Kernel subsystems
Scheduler, virtual memory, drivers.
I/O + devices
Access the disk/network and return a response.
OS metrics in production
What is useful to take into account in system design?
- Understanding queues at the OS level and their impact on latency.
- Knowing virtual memory helps explain spikes and OOM.
- Understanding the role of file systems is important for storage components.
- The user/kernel space boundaries provide a correct failure model.
Why does an engineer need System Design?
- Understanding processes and flows helps design competitive services.
- Knowledge of virtual memory and caches explains latency and spikes.
- Understanding file systems is useful when designing storage components.
- Understanding user/kernel boundaries is useful for assessing security and isolation.
Who is it suitable for?
For those who want to strengthen the foundation: backend engineers, SREs, system developers and everyone who works with infrastructure and performance-critical systems.
