Links to notes, videos etc. on future days are copies of materials from the 2020
version of 6.S081. 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.
Labor Day
Reg Day
LEC 1 (ab): Introduction and examples (handouts: xv6 book; 2020: notes, video)
Preparation: Read chapter 1 (for your amusement: Unix)
Homework 1 due: Question
Assignment: Lab util: Unix utilities
LEC 2 (TAs): C and gdb
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)
LEC 3 (ab): OS organization and system calls (2020: notes, boards, video)
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 2 due: Question
Assignment: Lab syscall: System calls
DUE: Lab util
LEC 4 (ab): Page tables (2020: notes, boards, video)
Preparation: Read Chapter 3 and kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, and kernel/exec.c
Homework 3 due: Question
LEC 5 (TAs): GDB, calling conventions and stack frames RISC-V (2020: notes, boards, video)
Preparation: Read Calling Convention
Assignment: Lab pgtbl: Page tables
DUE: Lab syscall
LEC 6 (ab): Isolation & system call entry/exit (2020: notes, video)
Preparation: Read Chapter 4, except 4.6 and kernel/riscv.h, kernel/trampoline.S, and kernel/trap.c
Homework 4 due: Question
LEC 7 (ab): Page faults (2020: notes, boards, video)
Preparation: Read Section 4.6
Homework 5 due: Question
Assignment: Lab traps: Traps
DUE: Lab pgtbl
LEC 8 (ab): Q&A labs
Homework 6 due: Question
LEC 9 (ab): Interrupts (2020: notes, boards, video)
Preparation: Read Chapter 5 and kernel/kernelvec.S, kernel/plic.c, kernel/console.c, kernel/uart.c, kernel/printf.c
Homework 7 due: Question
Assignment: Lab cow: Copy-on-write fork
DUE: Lab traps
ADD DATE
Indigenous Peoples Day
LEC 10 (ab): Multiprocessors and locking (2020: notes, boards, video)
Preparation: Read “Locking” with kernel/spinlock.h and kernel/spinlock.c
Homework 8 due: Question
LEC 11 (ab): Scheduling 1 (2020: notes, video)
Preparation: Read “Scheduling” through Section 7.4, and kernel/proc.c, kernel/swtch.S
Homework 9 due: Question
LEC 12 (ab): Scheduling 2 (2020: notes, code, video)
Preparation: Read remainder of “Scheduling”, and corresponding parts of kernel/proc.c, kernel/sleeplock.c
Homework 10 due: Question
Assignment: Lab thread: Multithreading
DUE: Lab cow
LEC 13 (ab): Q&A labs
Homework 11 due: Question
LEC 14 (ab): File systems (2020: notes, boards, video)
Preparation: Read kernel/bio.c, kernel/fs.c, kernel/sysfile.c, kernel/file.c and “File system” (except for the logging sections)
Homework 12 due: Question
Assignment: Lab net: Network driver
DUE: Lab thread
LEC 15 (ab): Crash recovery (2020: notes, boards, video)
Preparation: Read kernel/log.c and the logging sections of “File system”
Homework 13 due: Question
LEC 16 (ab): File system performance and fast crash recovery (2020: notes, video)
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Homework 14 due: Question
LEC 17 (ab): Virtual memory for applications (2020: notes, boards, video) (baker example)
Preparation: Read Virtual Memory Primitives for User Programs (1991)
Homework 15 due: Question
DUE: Lab net
LEC 18 (ab): OS Organization (2020: notes, video)
Preparation: Read The Performance of micro-Kernel-Based Systems (1997)
Homework 16 due: Question
Assignment: Lab lock: Parallelism/locking
Veteran’s Day
LEC 19 (ab): Virtual Machines (2020: notes, video)
Preparation: Read Dune: Safe User-level Access to Privileged CPU Features (2012)
Homework 17 due: Question
LEC 20 (ab): Kernels and HLL] (2020: notes, slides, video)
Preparation: Read the Biscuit paper (2018), FAQ
Homework 18 due: Question
Assignment: Lab fs: File system
DROP DATE
DUE: Lab lock
LEC 21 (ab): Networking (2020: notes, video)
Preparation: Read Receive Livelock (1996)
Homework 19 due: Question
Hacking day: no class meeting; work on the lab
DUE: Lab fs
Assignment: Lab mmap: Mmap
Thanksgiving
LEC 22 (ab): Meltdown (2020: notes, video)
Preparation: Read Meltdown (2018)
Homework 20 due: Question
LEC 23 (ab): Multi-Core scalab