Here, we focus on going into the core ideas behind operating systems and how we can make use of these ideas in the solutions we build.
A Stroll Through OS Concepts
Operating Systems Core
🔏 Things to go through
Here are some ideas about operating systems that you should go through later:
Resources
Textbooks (start here)
- Operating Systems: Three Easy Pieces (Arpaci-Dusseau) : free at ostep.org. This is your main text for the core topics. Written exactly at the conceptual level you need, with simulation homework.
- Modern Operating Systems (Tanenbaum) : use alongside OSTEP for a second perspective and stronger coverage of distributed systems.
- Distributed Systems: Principles and Paradigms (Tanenbaum & Van Steen) : your main text for the distributed systems module.
- Computer Security: Art and Science (Bishop) : for the reliability and security module.
Seminal papers to read alongside each module
- Basics: Ritchie & Thompson, The UNIX Time-Sharing System (1974)
- Concurrency: Dijkstra's semaphore paper; Lamport's bakery algorithm
- Address Space: Denning, The Working Set Model for Program Behavior (1968)
- File Systems: McKusick et al., A Fast File System for UNIX; Rosenblum & Ousterhout, The Design and Implementation of a Log-Structured File System
- Distributed: Lamport, Time, Clocks, and the Ordering of Events; the Raft paper (Ongaro & Ousterhout, 2014); Dean & Ghemawat, MapReduce
- Security: Saltzer & Schroeder, The Protection of Information in Computer Systems (1975) : still the canonical reference