Modern Operating Systems
by Andrew S. Tanenbaum

There are so many online resources to learn about OS’s these days but none come close to this magnificent book in terms of depth or quality.
What I really like about this book is that I feel it hits you (or me) with right level of abstraction, especially for a superhero with no formal Computing education.
Vikid is self taught (but aren’t we all?) and has a few superhero friends on the internet to help him when needed.
About the book
Modern Operating Systems by Andrew S. Tanenbaum (with Herbert Bos from the 4th edition) is one of the standard university textbooks on operating systems, first published in 1992 and now in its 4th edition (2014), with a 5th in preparation. It explains, from first principles and with real-world examples, how an operating system actually works: how it juggles many programs at once (processes, threads, scheduling), how it hands out memory (virtual memory, paging), how it stores data (file systems), how it talks to hardware (I/O, device drivers), how it avoids traps like deadlock, and how it keeps things secure. Later chapters survey real systems, including Linux, Windows and Android, as case studies.
Tanenbaum’s style is plain, example-driven and often funny, which is why it suits a self-taught reader: it assumes you are smart but does not assume a formal CS background. Tanenbaum is also the creator of MINIX, the small teaching operating system whose source Linus Torvalds famously studied before writing Linux; his separate book Operating Systems: Design and Implementation walks through that code (see The MINIX Book).
The section links below are topics from the book that I plan to write up in my own words over time; several are still to come.
Why I keep coming back to it
An operating system is the layer every program you write sits on top of, yet most of us treat it as magic. Understanding it demystifies a hundred everyday things: why a program “hangs”, why memory runs out, why files get corrupted on a bad shutdown, why security is hard. This book is my map of that territory.
As time permits I will fill out the following sections:
- Processes
- Threads
- Interprocess Communication
- Scheduling
- Memory
- Virtual Memory
- Paging
- Segmentation
- File Systems
- I/O
- Clocks
- Deadlocks
- Encoding
- Compression
- Caching
- Virtualization
- Distributed Systems
- Security
- Cryptography
- Authentication
- Attacks
- Exploits
- Malware
