Links to notes etc. on future days are copies of materials from 2014 to give you an idea of what the future will bring. We will update the notes as the course progresses.

MondayTuesday WednesdayThursday Friday
sep 5 sep 6
Reg Day
sep 7
LEC 1: Operating systems (html) (handouts: xv6 source, xv6 book)
Preparation: Unix intro
Assignment: HW: Boot xv6
Assignment: HW: shell
Assignment: Lab 1: C, Assembly, Tools, and Bootstrapping
sep 8 sep 9
sep 12
LEC 2: PC hardware and x86 programming slides, notes
Preparation: Read Bootstrap/PC hardware appendices and the related xv6 source files
sep 13 sep 14
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: Lab 2: Memory management
sep 15
DUE: Lab 1
sep 16
sep 19
LEC 4: Shell & OS organization
Preparation: Read chapter 0 of the xv6 book.
Homework 2 due: shell
sep 20 sep 21
LEC 5: Isolation mechanisms
Preparation: Read "Chapter 1: The first process" and the related xv6 source files
Assignment: HW: system calls
sep 22 sep 23
Student holiday
sep 26
LEC 6: Virtual memory (handouts: page table translation and registers)
Preparation: Read "Chapter 2: Page Tables"
Homework 3 due: systems calls
Assignment: HW lazy page allocation
sep 27 sep 28
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 29
DUE: Lab 2
sep 30
oct 3
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
oct 4 oct 5
Hacking day
Assignment: HW multithreaded programming
oct 6
DUE: Lab 3 (Part A)
oct 7
oct 10 - oct 11
Columbus Day
oct 12
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
Assignment: Lab 4: Preemptive Multitasking
oct 13
DUE: Lab 3 (Part B)
oct 14
oct 17
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
oct 18 oct 19
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 20
DUE: Lab 4 (Part A)
oct 21
oct 24
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 25 oct 26
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 27
DUE: Lab 4 (Part B)
oct 28
oct 31
QUIZ #1 location&time: walker (1-2:30p)
open book and notes
scope: Lectures 1 through 13, HW 1 through 10, labs 1 through 3
practice: previous years' quizzes.
nov 1 nov 2
Hacking day
Assignment: Lab 5: File system, spawn, and sh
nov 3
DUE: Lab 4 (Part C)
nov 4
DUE: Piazza discussion final project
nov 7
LEC 14: File system performance and fast crash recovery
Homework 11 due: HW crash
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
nov 8 nov 9
LEC 15: OS Organization
Preparation: Read Exokernel (1995)
Homework 12 due: HW exokernel question
nov 10
DUE: Final project proposal (if doing project)
nov 11
Veteran's Day
nov 14
LEC 16: Language/OS co-design
Preparation: Read Singularity (2007)
Homework 13 due: Singularity question
nov 15 nov 16
Hacking day
nov 17
DUE: Lab 5
nov 18
nov 21
LEC 17: Scalable locks (code)
Preparation: Read Non-scalable locks paper (2012)
Homework 14 due: ticket lock question
nov 22 nov 23
Hacking day
nov 24 - nov 25
nov 28
LEC 18: Scaling OSes
Preparation: Read RadixVM (2013)
Homework 15 due: refcache question
DUE: Email us a status update on your final project (a paragraph)
nov 29 nov 30
LEC 19: Virtual Machines
Preparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)
Homework 16 due: Dune question
dec 1 dec 2
dec 5
LEC 20: High-performance networking
Preparation: Read IX: A Protected Dataplane Operating System for High Throughput and Low Latency (2014)
Homework 17 due: IX question
dec 6 dec 7
Hacking day
dec 8
DUE: Lab 6 (networking) or lab 7 (Final project)
dec 9
dec 12
LEC 21: Certified systems (nodup.v, slides)
Preparation: Read Using Crash Hoare Logic for Certifying the FSCQ File System (2015)
Homework 18 due: FSCQ question
dec 13 dec 14
LEC 22: demos in class
Project sign-offs
dec 15 dec 16
dec 19 dec 20 dec 21
Finals Period
Time: 1:30-4:30p Location: Johnson Track (W35)
open book and notes
scope: Lectures 14 through last lecture, labs 4 and 5
practice: previous years' quizzes.
dec 22 dec 23

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

Creative Commons License Top // 6.828 home // Last updated Tuesday, 25-Jul-2017 19:19:36 EDT