6.828 | Fall 2012 | Graduate

Operating System Engineering

Lecture Notes and Readings

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.

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”

Page Table Translation and Registers (PDF)

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.)  

Course Info

As Taught In
Fall 2012
Learning Resource Types
Exams with Solutions
Lecture Notes
Projects with Examples
Programming Assignments