Operating Systems

Diving deep into the design and structure of Operating Systems.

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:

MirageOS
Hypervisors
Zen

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

/ Continue

Follow the technical trail.

Use the dense notes as the source material, then move through the guided route, writing, or project proof when you want a cleaner entry point.