Links to notes etc. on future days are copies of materials from 2017 to give you an idea of what the future will bring. We will update the notes as the course progresses. The lecture notes may help you remember the lecture content, but they are not a replacement for attending lectures.

MondayTuesday WednesdayThursday Friday
sep 3 sep 4
Reg Day
sep 5
LEC 1 (fk): Operating systems (handouts: xv6 source, xv6 book)
Preparation: Unix intro
Assignment: Lab 1: C, Assembly, Tools, and Bootstrapping
sep 6 sep 7
sep 10
LEC 2 (ab): PC hardware and x86 programming slides, notes
Preparation: Read Bootstrap/PC hardware appendices and the related xv6 source files
Assignment: HW: Boot xv6
sep 11 sep 12
LEC 3 (TAs): C and gdb (pointers example)
Homework 1 due: Boot xv6
Preparation: Read 2.9 (Bitwise operators), 5.1 (Pointers and Addresses) through 5.5(Character Pointers and Functions) and 6.4 (pointers to structures) in K&R
Assignment: HW: shell
Assignment: Lab 2: Memory management
sep 13
DUE: Lab 1
sep 14
sep 17
LEC 4 (fk): Shell & OS organization
Preparation: Read chapter 0 of the xv6 book.
Homework 2 due: shell
sep 18 sep 19
LEC 5 (fk): Isolation mechanisms
Preparation: Read "Chapter 1: Operating system organization" and the related xv6 source files
Assignment: HW: system calls
sep 20 sep 21
sep 24
LEC 6 (ab): Virtual memory (1) (handouts: page table translation and registers) (slides)
Preparation: Read "Chapter 2: Page Tables"
Homework 3 due: system calls
Assignment: HW lazy page allocation
sep 25 sep 26
LEC 7 (ab): Virtual memory (2) (handout: JOS virtual memory layout) (slides)
Homework 4 due: HW lazy page allocation
Assignment: HW xv6 CPU alarm
Assignment: Lab 3: User-Level Environments
sep 27
DUE: Lab 2
sep 28
oct 1
LEC 8 (fk): System calls, interrupts, exceptions (handouts: IDT)
Preparation: Read "Traps, interrupts, and drivers" and the related xv6 source files
Homework 5 due: HW xv6 CPU alarm
Assignment: HW multithreaded programming
oct 2 oct 3
LEC 9 (ab): Multiprocessors and locking (slides)
Preparation: Read "Locking" with spinlock.c and skim mp.c
Homework 6 due: HW multithreaded programming
Assignment: HW xv6 locks
oct 4
DUE: Lab 3 (Part A)
oct 5
oct 8 - oct 9
Columbus Day
oct 10
Hacking day
Assignment: Lab 4: Preemptive Multitasking
oct 11
DUE: Lab 3 (Part B)
oct 12
oct 15
LEC 10 (ab): Processes and switching
Preparation: Read "Scheduling" up to "Sleep and wakeup" and proc.c, swtch.S
Homework 7 due: HW xv6 locks
Assignment: HW uthreads
oct 16 oct 17
LEC 11 (fk): sleep&wakeup
Preparation: Read remainder of "Scheduling", and corresponding parts of proc.c
Homework 8 due: HW uthreads
Assignment: HW barrier
oct 18
DUE: Lab 4 (Part A)
oct 19
oct 22
LEC 12 (fk): File systems
Preparation: Read bio.c, fs.c, sysfile.c, file.c and "File system" except for the logging sections
Homework 9 due: HW barrier
Assignment: HW big files
oct 23 oct 24
LEC 13 (fk): Crash recovery
Preparation: Read log.c and the logging sections of "File system"
Homework 10 due: HW big files
Assignment: HW crash
Assignment: Lab 6: Networking
Assignment: Lab 7: Final project
oct 25
DUE: Lab 4 (Part B)
oct 26
oct 29
Quiz #1 open book and notes
scope: Lectures 1 through 13, HW 1 through 10, labs 1 through 3
practice: previous years' quizzes.
oct 30 oct 31
Hacking day
Assignment: Lab 5: File system, spawn, and sh
nov 1
DUE: Lab 4 (Part C)
nov 2
DUE: Piazza discussion final project
nov 5
LEC 14 (fk): File system performance and fast crash recovery
Homework 11 due: HW crash
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Assignment: mmap()
nov 6 nov 7
LEC 15 (ab): Virtual Memory (3) (slides)
Preparation: Read Virtual Memory Primitives for User Programs (1991)
Homework 12 due: mmap
nov 8
DUE: Final project proposal (if doing project)
nov 9
nov 12
Veteran's Day
nov 13 nov 14
LEC 16 (fk): OS Organization
Preparation: Read Exokernel (1995)
Homework 13 due: HW exokernel question
nov 15
DUE: Lab 5
nov 16
nov 19
LEC 17 (cc): Kernels and HLL
Preparation: Read the Biscuit paper (2018)
Homework 14 due: HW Biscuit question
nov 20 nov 21
LEC 18 (ab): Scalable locks (slides) (code)
Preparation: Read Non-scalable locks paper (2012)
Homework 15 due: ticket lock question
nov 22 - nov 23
nov 26
LEC 19 (ab): Scaling OSes slides
Preparation: Read RCU (2013)
Homework 16 due: RCU question
DUE: Email us a status update on your final project (a paragraph)
nov 27 nov 28
LEC 20 (ab): Virtual Machines (1) (slides)
Preparation: Read Software vs Hardware Virtualization (2006)
Homework 17 due: VM question
nov 29 nov 30
dec 3
LEC 21 (ab): Virtual Machines (2) (slides)
Preparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)
Homework 18 due: Dune question
dec 4 dec 5
Hacking day
dec 6
DUE: Lab 6 (networking) or lab 7 (Final project)
dec 7
dec 10
LEC 22 (fk): High-performance networking
Preparation: Read IX: A Protected Dataplane Operating System for High Throughput and Low Latency (2014)
Homework 19 due: IX question
dec 11 dec 12
LEC 23: demos in class
Project sign-offs
dec 13 dec 14
dec 17 dec 18 dec 19 dec 20
Quiz #2
DUPONT-Gym, 9am-11pm
open book, notes, and papers.
scope: Lectures 14 through last lecture (dec 12), labs 4 and 5.
practice: previous years' quizzes.
dec 21

Questions or comments regarding 6.828? Send e-mail to the TAs at

Creative Commons License Top // 6.828 home // Accessibility // Last updated Wednesday, 22-Sep-2021 12:14:48 EDT