ScheduleΒΆ
The schedule will change as the course progresses, in part based on student interests. If you are particularly interested in some topic not covered here, send mail to the course staff.
Submit your answers (and questions) via survey link, and post your questions to colleagues (and staffs) on Piazza.
Answers for lecture preparation questions can be found in this Piazza post @55.
Join our BlueJeans meeting Here.
Monday | Tuesday | Wednesday | Thursday | Friday |
Jan 6 First day of class (No class) |
Jan 7 LEC 1: Designing Operating Systems Preparation: Watch "Is It Time to Rewrite the Operating System in Rust?" (Question) Assignment: Lab 0: Rustlings |
Jan 8 | Jan 9 LEC 2: Rust 1: Thinking of Rust Preparation: Read Rusty Types for Solid Safety Preparation: Watch "A Case for Oxidation: The Rust Programming Language" (Question) |
Jan 10 |
Jan 13 | Jan 14 LEC 3: Rust 2: Ownership and Lifetime (1) Preparation: Read Book: Ch04 and Nomicon:Ch03. Preparation: Check "The benefits and costs of writing a POSIX kernel in a high-level language" (Question) |
Jan 15 | Jan 16 LEC 4: Rust 2: Ownership and Lifetime (2) Preparation: Read Book: Ch04 and Nomicon:Ch03. (Question) |
Jan 17 |
Jan 20 DUE: Lab 0 Martin Luther King, Jr |
Jan 21 LEC 5: Introduction to Raspberry Pi 3 Preparation: Watch the founder's take on Rpi 3 (Question) Assignment: Lab 1: Bootstrapping Raspberry Pi |
Jan 22 | Jan 23 Hacking Day (recitation only) |
Jan 24 |
Jan 27 DUE: Lab 1 |
Jan 28 LEC 6: Rust 3: Unsafety Preparation: Read Nomicon:Ch01 and Ref Ch14. Preparation: Watch "Writing Linux Kernel Modules in Safe Rust" (Question) Assignment: Lab 2: Shell and Bootloader |
Jan 29 | Jan 30 LEC 7: Rust 4: Freestanding/Baremetal Rust Preparation: A Freestanding Rust Binary Preparation: implementing RNG (Question) |
Jan 31 |
Feb 3 | Feb 4 LEC 8: Rust 5: Generics and Traits Preparation: Book:Ch10 Preparation: The Common Rust Traits Preparation: Watch "Traits and You: A Deep Dive" (Question) |
Feb 5 | Feb 6 LEC 9: Rust 6: Smart Pointer and Container Preparation: Container cheat sheet Preparation: Book:Ch15 Preparation: Deref for smart pointer and containers (Question) |
Feb 7 |
Feb 10 DUE: Lab 2 |
Feb 11 LEC 10: Review: Rust 5/6 Preparation: Watch "Perspectives on OS Foundations" (Question) Assignment: Lab 3: FAT32 Filesystem |
Feb 12 | Feb 13 LEC 11: Filesystem/Fat32 Preparation: No Prep (submit questions if you have any)! |
Feb 14 |
Feb 17 | Feb 18 LEC 12: Rust 7: Interior Mutability Preparation: Rc and Cell (Question) |
Feb 19 | Feb 20 LEC 13: Memory Management and Heap Allocator Preparation: Heap Allocation (Question) |
Feb 21 |
Feb 24 DUE: Proposal Slides (Upload link) |
Feb 25 Proposal Day Teams#1-20 slides (Here) Evalution form for Day 1 (Here) |
Feb 26 | Feb 27 Proposal Day Teams#21-35 slides (Here) Evalution form for Day 2 (Here) Review for Q1 |
Feb 28 |
Mar 2 DUE: Lab 3 |
Mar 3 Guest lecture: Scalable Undefined Behavior Detection for Rust Assignment: Lab 4: Preemptive Multitasking |
Mar 4 | Mar 5 Quiz #1. Lab 1-3 (Lec 1-13) (PDF) |
Mar 6 |
Mar 9 | Mar 10 LEC 14: Introduction to ARMv8/AArch64 Preparation: Fundamentals of ARMv8-A Ch1. page 4-9 (Question) |
Mar 11 DROP DATE |
Mar 12 Review Q1 (recitation only) Lab4 Overview |
Mar 13 |
Mar 16 Spring break |
Mar 17 Spring break |
Mar 18 Spring break |
Mar 19 Spring break |
Mar 20 Spring break |
Mar 23 | Mar 24 No class (be safe!) |
Mar 25 | Mar 26 No class (be safe!) |
Mar 27 |
Mar 30 | Mar 31 LEC 15: Interrupt and Exception (Recorded lecture) Preparation: AArch64 Exception and Interrupt Handling (Question) |
Apr 1 | Apr 2 LEC 16: Process and Scheduling (Recorded lecture) Preparation: Scheduling: Introduction (Question) |
Apr 3 |
Apr 6 | Apr 7 LEC 17: Virtual Memory (Recorded lecture) Preparation: ARMv8-A Address Translation (Question) |
Apr 8 | Apr 9 LEC 18: Synchronization (Recorded lecture) LEC 19: Rust 9: Concurrency (Watch: Rust's Journey to Async/Await) Preparation: Watch "Down memory lane: Two decades with the slab allocator" (Question) |
Apr 10 |
Apr 13 DUE: Project video demo (link) |
Apr 14 DUE: Project peer evaluation day 1 (Youtube) (Evalution Form) Assignment: Lab 5: Multicore and Networking (optional) |
Apr 15 | Apr 16 DUE: Project peer evaluation 2 (Youtube) (Evalution Form) |
Apr 17 |
Apr 20 DUE: Lab 4 |
Apr 21 Quiz #2. Lab 1-4, Lec 1-17 (not 18/19) (Prep) (PDF) |
Apr 22 | Apr 23 Final exam week (No final!) |
Apr 24 Final exam week (No final!) |
Apr 27 Final exam week (No final!) |
Apr 28 Final exam week (No final!) |
Apr 29 Final exam week (No final!) |
Apr 30 Final exam week (No final!) |
May 1 DUE: Lab5 DUE: Final project (link) |