Links to notes etc. on future days are copies of materials from 2016 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 4 sep 5
Reg Day
sep 6
LEC 1: Operating systems (handouts: xv6 source, xv6 book)
Preparation: Unix intro
Assignment: Lab 1: C, Assembly, Tools, and Bootstrapping
sep 7 sep 8
sep 11
LEC 2: PC hardware and x86 programming slides, notes
Preparation: Read Bootstrap/PC hardware appendices and the related xv6 source files
Assignment: HW: Boot xv6
sep 12 sep 13
LEC 3: 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 14
DUE: Lab 1
sep 15
sep 18
LEC 4: Shell & OS organization
Preparation: Read chapter 0 of the xv6 book.
Homework 2 due: shell
sep 19 sep 20
LEC 5: Isolation mechanisms
Preparation: Read "Chapter 1: Operating system organization" and the related xv6 source files
Assignment: HW: system calls
sep 21 sep 22
sep 25
LEC 6: Virtual memory (handouts: page table translation and registers)
Preparation: Read "Chapter 2: Page Tables"
Homework 3 due: system calls
Assignment: HW lazy page allocation
sep 26 sep 27
LEC 7: Using virtual memory (handout: JOS virtual memory layout)
Homework 4 due: HW lazy page allocation
Assignment: HW xv6 CPU alarm
Assignment: Lab 3: User-Level Environments
sep 28
DUE: Lab 2
sep 29
Student holiday
oct 2
LEC 8: 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 3 oct 4
LEC 9: Multiprocessors and locking
Preparation: Read "Locking" with spinlock.c and skim mp.c
Homework 6 due: HW multithreaded programming
Assignment: HW xv6 locks
oct 5
DUE: Lab 3 (Part A)
oct 6
oct 9 - oct 10
Columbus Day
oct 11
LEC 10: Processes and switching
Preparation: Read "Scheduling" up to "Sleep and wakeup" with proc.c, swtch.S, and sys_fork (in sysproc.c)
Homework 7 due: HW xv6 locks
Assignment: HW uthreads
Assignment: Lab 4: Preemptive Multitasking
oct 12
DUE: Lab 3 (Part B)
oct 13
oct 16
LEC 11: sleep&wakeup
Preparation: Read remainder of "Scheduling"; read remainder of proc.c and sys_wait, sys_exit, sys_kill
Homework 8 due: HW uthreads
Assignment: HW barrier
oct 17 oct 18
LEC 12: 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 19
DUE: Lab 4 (Part A)
oct 20
oct 23
QUIZ #1 open book and notes
scope: Lectures 1 through 11, HW 1 through 8, labs 1 through 3
practice: previous years' quizzes.
oct 24 oct 25
LEC 13: 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 26
DUE: Lab 4 (Part B)
oct 27
oct 30
Hacking day
oct 31 nov 1
Hacking day
Assignment: Lab 5: File system, spawn, and sh
nov 2
DUE: Lab 4 (Part C)
nov 3
DUE: Piazza discussion final project
nov 6
LEC 14: File system performance and fast crash recovery
Homework 11 due: HW crash
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Assignment: mmap()
nov 7 nov 8
LEC 15: Virtual Memory (2)
Preparation: Read Virtual Memory Primitives for User Programs (1991)
Homework 12 due: mmap
nov 9
DUE: Final project proposal (if doing project)
nov 10
Veteran's Day
nov 13
LEC 16: OS Organization
Preparation: Read Exokernel (1995)
Homework 13 due: HW exokernel question
nov 14 nov 15
LEC 17: Language/OS co-design
Preparation: Read Singularity (2007)
Homework 14 due: Singularity question
nov 16
DUE: Lab 5
nov 17
nov 20
LEC 18: Scalable locks (code)
Preparation: Read Non-scalable locks paper (2012)
Homework 15 due: ticket lock question
nov 21 nov 22
Hacking day
nov 23 - nov 24
nov 27
LEC 19: Scaling OSes
Preparation: Read RCU (2013)
Homework 16 due: RCU question
DUE: Email us a status update on your final project (a paragraph)
nov 28 nov 29
LEC 20: Virtual Machines (1)
Preparation: Read Software vs Hardware Virtualization (2006)
Homework 17 due: VM question
nov 30 dec 1
dec 4
LEC 21: Virtual Machines (2)
Preparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)
Homework 18 due: Dune question
dec 5 dec 6
Hacking day
dec 7
DUE: Lab 6 (networking) or lab 7 (Final project)
dec 8
dec 11
LEC 22: High-performance networking
Preparation: Read IX: A Protected Dataplane Operating System for High Throughput and Low Latency (2014)
Homework 19 due: IX question
dec 12 dec 13
LEC 23: demos in class
Project sign-offs
dec 14 dec 15

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

Creative Commons License Top // 6.828 home // Last updated Tuesday, 19-Sep-2017 17:26:09 EDT