Some of the readings require the xv6 code (PDF), as well as the xv6 book (PDF - 1.3MB), which are provided courtesy of Frans Kaashoek, Robert Morris, and Russ Cox and are used here with permission.
| LEC # | LECTURE TOPICS AND NOTES | READINGS AND HANDOUTS |
|---|---|---|
| 1 | Operating Systems (PDF) | “Chapter 0: Operating System Interfaces” of xv6 book |
| 2 | PC Hardware and x86 Programming (PDF) | “Appendix A: PC Hardware” and “Appendix B: The Boot Loader” of xv6 book, and the related xv6 source files |
| 3 | Overview of Major Internals, System Call Interface (PDF) | “Chapter 1: The first process” and the related xv6 source files |
| 4 | Virtual Memory (PDF) |
“Chapter 2: Page Tables” |
| 5 | Interrupts, Exceptions (PDF) |
“Chapter 3: Traps, interrupts, and drivers” and the related xv6 source files |
| 6 | Multiprocessors and Locking (PDF) | “Chapter 4: Locking” with spinlock.c and skim mp.c |
| 7 | Processes and Switching (PDF) | “Chapter 5: Scheduling” up to “Sleep and wakeup” with proc.c, setjmp.S, and sys_fork (in sysproc.c) |
| 8 | Sleep & Wakeup (PDF) | Read remainder of “Chapter 5: Scheduling”; read remainder of proc.c and sys_wait, sys_exit, sys_kill |
| 9 | File Systems (PDF) | “Chapter 6: File system” and bio.c, fs.c, sysfile.c, file.c, except for the logging sections |
| 10 | Crash Recovery (PDF) | Read log.c and the logging sections of “Chapter 6: File system” |
| 11 | File System Performance and Fast Crash Recovery (PDF) | Tweedie, Stephen C. “Journaling the Linux ext2fs Filesystem.” [Paper Presented at LinuxExpo 1998]. |
| 12 | Project Introduction and Discussion | |
| 13 | OS Organization (PDF) | Engler, Dawson R., M. Frans Kaashoek, and James O’Toole Jr. “Exokernel: An Operating System Architecture for Application-Level Resource Management.” |
| 14 | In-class Hacking Session | |
| 15 | Project Conferences | |
| 16 | Project Conferences (cont.) | |
| 17 | Language / OS Co-design (PDF) | Hunt, Galen C., and James R. Larus. “Singularity: Rethinking the Software Stack.” Microsoft Research Redmond 41, no. 2 (2007): 37–49. |
| Quiz | Quiz (Open Book and Notes) | |
| 18 | Scalable Locks (PDF) | Boyd-Wickizer, Silas, M. Frans Kaashoek, et al. “Non-Scalable Locks are Dangerous.” |
| 19 | Project Conferences | |
| 20 | Project Conferences (cont.) | Boyd-Wickizer, Silas, Austin T. Clements, et al. “An Analysis of Linux Scalability to Many Cores.” |
| 21 | Lock-free Coordination (PDF) | |
| 22 | Virtual Machines (PDF) | Adams, Keith, and Ole Agesen. “A Comparison of Software and Hardware Techniques for x86 Virtualization.” ACM Digital Library 34, no. 5 (2006): 2–13. |
| 23 | No lecture; work on final projects | |
| 24 | Demos in class | |
| 25 | Demos in class (cont.) |