Links to notes, videos etc. on future days are copies of materials from the 2022 version of 6.1810. 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
Labor Day
sep 5
Reg Day
sep 6
LEC 1 (rtm): Introduction and examples (handouts: xv6 book)
Preparation: Read chapter 1 (for your amusement: Unix)
Assignment: Lab util: Unix utilities
sep 7 sep 8
sep 11
LEC 2 (ab): C in xv6, slides, and examples
Preparation: 2.9 (Bitwise operators) and 5.1 (Pointers and addresses) through 5.6 (Pointer arrays) and 6.4 (pointers to structures) by Kernighan and Ritchie (K&R)
sep 12 sep 13
LEC 3 (rtm): OS design
Preparation: Read chapter 2 and xv6 code: kernel/proc.h, kernel/defs.h, kernel/entry.S, kernel/main.c, user/initcode.S, user/init.c, and skim kernel/proc.c and kernel/exec.c
Homework 1 due: Question
Assignment: Lab syscall: System calls
sep 14
DUE: Lab util
sep 15
sep 18
LEC 4 (rtm): page tables
Preparation: Read Chapter 3 and kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, and kernel/exec.c
Homework 2 due: Question
sep 19 sep 20
LEC 5 (TAs): GDB Calling conventions
Preparation: Read Calling Convention
Assignment: Lab pgtbl: Page tables
sep 21
DUE: Lab syscall
sep 22
sep 25
LEC 6 (rtm): System call entry/exit
Preparation: Read Chapter 4, except 4.6 and kernel/riscv.h, kernel/trampoline.S, and kernel/trap.c
Homework 3 due: Question
sep 26 sep 27
LEC 7 (ab): Page faults (slides)
Preparation: Read Section 4.6
Homework 4 due: Question
Assignment: Lab traps: Traps
sep 28
DUE: Lab pgtbl
sep 29
oct 2
LEC 8 (ab): Q&A labs (slides)
Homework 5 due: Question
oct 3 oct 4
LEC 9 (rtm): Device drivers
Preparation: Read Chapter 5 and kernel/kernelvec.S, kernel/plic.c, kernel/console.c, kernel/uart.c, kernel/printf.c
Homework 6 due: Question
Assignment: Lab cow: Copy-on-write fork
oct 5
DUE: Lab traps
oct 6
oct 9
Indigenous Peoples Day
oct 10 oct 11
LEC 10 (ab): Locking
Preparation: Read "Locking" with kernel/spinlock.h and kernel/spinlock.c
Homework 7 due: Question
oct 12 oct 13
oct 16
LEC 11 (rtm): Scheduling 1
Preparation: Read "Scheduling" through Section 7.4, and kernel/proc.c, kernel/swtch.S
Homework 8 due: Question
oct 17 oct 18
LEC 12 (rtm): Coordination, code
Preparation: Read remainder of "Scheduling", and corresponding parts of kernel/proc.c, kernel/sleeplock.c
Homework 9 due: Question
Assignment: Lab thread: Multithreading
oct 19
DUE: Lab cow
oct 20
oct 23
Hacking day: no class meeting; work on the lab
oct 24 oct 25
Hacking day: no class meeting; work on the lab
Assignment: Lab net: Network driver
oct 26
DUE: Lab thread
oct 27
oct 30
Class is canceled
Homework 10 due: Question
oct 31 nov 1
LEC 13 (ab): File systems (slides)
Preparation: Read kernel/bio.c, kernel/fs.c, kernel/sysfile.c, kernel/file.c and "File system" (except for the logging sections)
Homework 11 due: Question
nov 2 nov 3
nov 6
LEC 14 (ab): Crash recovery (slides)
Preparation: Read kernel/log.c and the logging sections of the "File system" chapter
Homework 12 due: Question
nov 7
DUE: Lab net
nov 8
LEC 15 (rtm): File system performance and fast crash recovery
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Homework 13 due: Question
Assignment: Lab lock: Parallelism/locking
nov 9 nov 10
Veteran's Day
nov 13
LEC 16 (ab): Virtual memory for applications (baker example) (slides)
Preparation: Read Virtual Memory Primitives for User Programs (1991)
Homework 14 due: Question
nov 14 nov 15
LEC 17 (rtm): OS Organization
Preparation: Read The Performance of micro-Kernel-Based Systems (1997)
Homework 15 due: Question
Assignment: Lab fs: File system
nov 16
DUE: Lab lock
nov 17
nov 20
LEC 18 (ab): Virtual Machines
Preparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)
Homework 16 due: Question
nov 21 nov 22
Hacking day: no class meeting; work on the lab
nov 23 - nov 24
nov 27
LEC 19 (ab): Kernels and HLL
Preparation: Read the Biscuit paper (2018), FAQ
Homework 17 due: Question
nov 28 nov 29
LEC 20 (ab): Networking
Preparation: Read Receive Livelock (1996)
Homework 18 due: Question
DUE: Lab fs
Assignment: Lab mmap: Mmap
nov 30 dec 1
dec 4
LEC 21 (ab): Meltdown
Preparation: Read Meltdown (2018)
Homework 19 due: Question
dec 5 dec 6
LEC 22 (rtm): Multi-Core scalability and RCU
Preparation: Read RCU paper (2013), FAQ
Homework 20 due: Question
dec 7 dec 8
dec 11
Hacking day: no class meeting; work on the lab
dec 12
DUE: Lab mmap
dec 13
LEC 23 (Sanjit): Kernel extensibility
Preparation: Read Intro to eBPF (LWN)
dec 14 dec 15

Questions or comments regarding 6.1810? Send e-mail to the course staff at

Creative Commons License Top // 6.1810 home // Last updated Wednesday, 13-Dec-2023 19:19:24 EST