Skip to content

Schedule

Week Date Topic Links
1
Aug 25 Tuesday

LEC L01 Building an Operating System

Aug 27 Thursday

EXERCISE Setup session · 00r hello_rust

SUBMIT 00r
Aug 28 Friday

EXERCISE 01r control_flow

SUBMIT 01r
2
Sep 1 Tuesday

LEC L03 Ownership, Borrowing, and Lifetimes

Sep 3 Thursday

EXERCISE 02r ownership

SUBMIT 02r
Sep 4 Friday

EXERCISE 03r borrowing

SUBMIT 03r
3
Sep 8 Tuesday

LEC L05 Collections, Traits, and Errors

Sep 10 Thursday

EXERCISE 04r structs_impl

SUBMIT 04r
Sep 11 Friday

EXERCISE 05r enums_match

SUBMIT 05r
4
Sep 15 Tuesday

LEC L07 Buffers, Bytes, and Line-Oriented I/O

Sep 17 Thursday

EXERCISE 06r collections · 07r traits

SUBMIT 06r, 07r
Sep 18 Friday

EXERCISE 08r errors · 10c echo

SUBMIT 08r, 10c
5
Sep 22 Tuesday

LEC L09 Leaving std: no_std and Bare-Metal Rust

Sep 24 Thursday

EXERCISE 11c cat

SUBMIT 11c
Sep 25 Friday

EXERCISE 12c wc · 13c grep · extra credit 14c head

SUBMIT 12c, 13c · 14c extra credit
6
Sep 29 Tuesday

LEC L11 Physical Memory and the Free List

Oct 1 Thursday

EXERCISE 20a asm_bridge — QEMU deadline

SUBMIT 20a
Oct 2 Friday

EXERCISE 21r unsafe_bridge · 30k kernel_basics

SUBMIT 21r, 30k
7
Oct 6 Tuesday

LEC L13 Processes and the PCB

Oct 8 Thursday

EXERCISE 31k boot · 32k physical_memory

SUBMIT 31k, 32k
Oct 9 Friday

EXERCISE 33k paging

SUBMIT 33k
8
Oct 13 Tuesday

LEC L14 The Context Switch and the Scheduler

Oct 15 Thursday

EXAM MIDTERM 1 — Module 1 + kernel through 33k paging

Oct 16 Friday

NO CLASS No class — exam week

9
Oct 20 Tuesday

NO CLASS Fall Break — no class

Oct 22 Thursday

EXERCISE 34k processes

SUBMIT 34k
Oct 23 Friday

EXERCISE 35k context_switch · 36k scheduling

SUBMIT 35k, 36k
10
Oct 27 Tuesday

LEC L16 Virtual Memory II: Turning the MMU On

Oct 29 Thursday

EXERCISE 37k spinlocks · 38k semaphores

SUBMIT 37k, 38k
Oct 30 Friday

EXERCISE 39k virtual_memory

SUBMIT 39k
11
Nov 3 Tuesday

LEC L18 Traps, Privilege Modes, and Interrupts

Nov 5 Thursday

EXERCISE 40k filesystem · extra credit 41k devices

SUBMIT 40k · 41k extra credit
Nov 6 Friday

EXERCISE 42k boot_to_life · 43k traps · 44k interrupts

SUBMIT 42k, 43k, 44k
12
Nov 10 Tuesday

LEC L22 User Mode I: The Wall, Trampoline, Trapframe

Nov 12 Thursday

EXERCISE 45k console · 46k shell · extra credit 47k file_commands

SUBMIT 45k, 46k · 47k extra credit
Nov 13 Friday

EXERCISE 48k user_mode

SUBMIT 48k
13
Nov 17 Tuesday

LEC L23 User Mode II: System Calls

Nov 19 Thursday

EXAM MIDTERM 2 — 34k processes through 48k user mode

Nov 20 Friday

NO CLASS No class — exam week

14
Nov 24 Tuesday

LEC L21 File Commands over a Filesystem API

Nov 26 Thursday

NO CLASS Thanksgiving — no class

Nov 27 Friday

NO CLASS Thanksgiving — no class

15
Dec 1 Tuesday

LEC L24 exec, File Descriptors, fork and wait

Dec 3 Thursday

EXERCISE 49k exec · 50k file_descriptors

SUBMIT 49k, 50k
Dec 4 Friday

EXERCISE 51k fork_wait · 52k userland · 53k ship_your_commands · extra credit 54k elf_loader

SUBMIT 51k, 52k, 53k · 54k extra credit
16
Dec 8 Tuesday

LEC L26 The Payoff: Your Commands on Your Kernel, and Final Review

How this course runs

Tuesday is lecture. Thursday and Friday are exercise sessions. Every line of code in this course is written in the room, on the classroom network. Read the Prep page before each session. The session's exercise is released when the session starts; run oslings submit before you leave, passed or not. SUBMIT lists what each session releases.

Did not finish? Finish it yourself: Thursday's exercise by Thursday 11:59 pm, Friday's by Monday 11:59 pm.


Last updated: August 27, 2026