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 ADD DATE 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 DROP DATE Hacking day: no class meeting; work on the lab nov 23 - nov 24 Thanksgiving 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 LAST DAY OF CLASSES LEC 23 (Sanjit): Kernel extensibility Preparation : Read Intro to eBPF (LWN) dec 14 dec 15