- Lecture 1 (January 25): Course introduction and overview of processor architecture
- Lecture 2 (January 27): x86-64 page tables
- Lecture 3 (February 1): Multitasking and preemption
- Lecture 4 (February 3): Interrupts, buddy allocation, and testing
- Section 1 (Week of February 8): Kernel extensions
- Lecture 5 (February 8): Multithreading and synchronization
- Lecture 6 (February 10): Interrupts, concurrency, and synchronization
- MIDTERM 1: IN CLASS (February 17)
- Section 2 (Week of February 22): The microkernel debate
- Lecture 7 (February 22): Wait queues
- Lecture 8 (February 24): Swapping and memory maps
- Lecture 9 (March 3): VFS
Section 3 (Week of March 8): Large-scale file systems Cancelled
- Lecture 10 (March 8): Storage devices and data layout
- Lecture 11 (March 10): Journaling
- Lecture 12 (March 15): Device interaction
- Lecture 13 (March 17): Log-structured file systems
- Section 4 (Week of March 22): Scalability and OS design
- Lecture 14 (March 22): Synchronization and memory ordering
- Lecture 15 (March 24): DAC, MAC, and iOS
- Lecture 16 (March 29): Writing kernels in high-level languages
- Section 5 (Week of April 5): Rethinking OS abstractions
- Lecture 17 (April 5): Scheduling
- Lecture 18 (April 7): Virtualization
- Lecture 19 (April 12): Networking
- NO CLASS: HACKING DAY (April 14)
- Lecture 20 (April 19): EthiCS lecture (Reading 1, Reading 2)
- Lecture 21 (April 21): GPUs
- Lecture 22 (April 26): Security
- MIDTERM 2: IN CLASS (April 28)