Course Schedule

A (tentative) schedule for the semester:

(LKD Book: Linux Kernel Development, 3rd Edition, 2010.)

Week Date Topic Readings Assignments
1 01/13 Intro to Linux Kernel Programming and Toolchains Chapter 1 & 2 of the LKD book A1: Readiness Exercise (Due: 01/17)
2 01/20 Isolation, System Calls and Linux Kernel Data Structures Chapter 5 & 6 & 17 (modules) of LKD A2: Build the Kernel (Due: 01/24)
3 01/27 Kernel Debugging, and Tracing Techniques Chapter 18 of LKD A3: System Calls (Due: TBD)
4 02/03 Process Management and Process Scheduling Chapter 3 of LKD A4: Kernel Module & Linked List (Due: TBD)
5 02/10 Interrupt Handling: Top Half, Bottom Half Chapter 7 of LKD A5: More Kernel Data Structures (Due: TBD)
6 02/17 Kernel Synchronization Chapter 9 & 10 of LKD A6: CPU Profiler 1 (Due: TBD)
7 02/24 Timer and Time Management Chapter 11 of LKD A7: CPU Profiler 2 (Due: TBD)
8 03/03 Device Drivers, Virtualization Chapter 17 of LKD A8: I/O Virtualization and Device Drivers (Due: TBD)
9 03/10 Memory Management, Address Space Chapter 15 of LKD A9: Userspace Page Fault Handling (Due: TBD)
10 03/17 Virtual File System, Page Cache, and Page Fault Chapter 13 & 16 of LKD Final Project Checkpoint (Due: TBD)
11 03/24 Spring Break
12 03/31 Filesystem and Block IO & Paper Reading and Discussion. Chapter 14 of LKD
13 04/07 Paper Reading and Discussion
14 04/14 Paper Reading and Discussion
15 04/21 Paper Reading and Discussion
16 04/28 Paper Reading and Discussion & Final Project Presentation