Course Schedule
A (tentative) schedule for the semester:
(LKD Book: Linux Kernel Development, 3rd Edition, 2010.)
Week | Date | Topic | Readings | Assignments |
---|---|---|---|---|
1 | 08/25 | Intro to OS, OS structure, and toolchains, kernel debugging, kernel code exploration/browsing, and exploring the xv6 kernel. | Chapter 0 of the xv6 book |
hw0: readiness exercise (Due: 09/01) |
2 | 09/01 | Isolation, system calls, kernel booting. | Appendix B, and Chapter 1 of the xv6 book |
hw1: utilities and system calls (Due: 09/12) |
3 | 09/08 | Memory management, paging. | Chapter 2 of the xv6 book |
hw2: boot loading exercise (Due: 09/19) |
4 | 09/15 | Virtual memory, mmap. | Chapter 2 of the xv6 book |
hw3: page table (Due: 09/26) |
5 | 09/22 | Page replacement, kalloc, interrupts | Chapter 3 of the xv6 book |
hw4 (part 1): page table deduplication (Due: 10/03) |
6 | 09/29 | Midterm 1; Device drivers | Chapter 3 of the xv6 book |
hw4 (part 2): Copy-on-Write (CoW) (Due: 10/10) |
7 | 10/06 | Device drivers; Life of a process | Chapter 5 of the xv6 book |
hw5 : Device drivers for console and display (Due: 10/17) |
8 | 10/13 | Scheduling, context switch, threads | Chapter 5 of the xv6 book |
final project proposal (optional for undergraduate students) (Due: 10/28) |
9 | 10/20 | concurrency, implement lock, deadlock | Chapter 4 of the xv6 book | |
10 | 10/27 | Barriers, conditional variables, futex, and signal | ||
11 | 11/03 | Midterm 2; Intro to file systems | Chapter 6 of the xv6 book | |
12 | 11/10 | Intro to file systems | Chapter 6 of the xv6 book | |
13 | 11/17 | File systems failure and persistence | Chapter 6 of the xv6 book | |
14 | 11/24 | Multi-core, kernel security, OS virtualization | ||
15 | 12/01 | Intro to Linux kernel, recent topics in OS design |