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 3 of LKD | |
5 | 09/22 | Page replacement, kalloc | ||
6 | 09/29 | Context switch, page table switch | Chapter 5 of the xv6 book | |
7 | 10/06 | Life of a process, scheduling | ||
8 | 10/13 | Thread, concurrency | Chapter 4 of the xv6 book | |
9 | 10/20 | Implement lock, deadlock | ||
10 | 10/27 | Barriers, conditional variables, futex, and signal | ||
11 | 11/03 | Intro to file system | ||
12 | 11/10 | File system failure and persistence | Chapter 6 of the xv6 book | |
13 | 11/17 | Device drivers | Chapter 3 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 |