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