Weekly Syllabus

Week
(Date)

Topic

Reading

Notes*

Week 1
(1/20)
Introduction -- course overview, refresher on OS basics (OS structure: monoliths, microkernels, virtual machines, syscalls, kernel services, etc)

Quest-V SDK




Week 2
(1/27)
Quest-V SDK (continued) -- Walkthrough of markdown documents, code examples, Quest-V overview -- features, code structure, walkthrough and how it works

Virtualization and Microkernels
  • Notes on virtualization and micro-kernels




Week 3
(2/3)
Virtualization and Microkernels -- continued
  • Notes on virtualization structures

Virtualization -- shadow page tables/EPTs, VMCS details




Week 4
(2/10)
x86 Architecture -- ISA, inline assembly, 32- vs 64-bit, switching into 64-bit mode, 2- vs 4/5-level paging
  • Notes on Intel architecture

Quest overview -- features, code structure, boot up/initialization
  • Quest notes
  • Primer assignment demos
  • Quest-V system development assignment released




Week 5
(2/17)
Substitute Monday Schedule for Presidents' Day Holiday
  • No Tuesday lecture

Symmetric multiprocessing -- initialization (INIT/SIPI/SIPI, etc), synchronization basics (semaphores, spinlocks)
  • Shriram Raja presentation
  • SMP notes




Week 6
(2/24)
Batched Priority Locking (BPL) -- explanation and comparison with alternative approaches
  • Shriram Raja presentation
  • Notes on BPL

Scheduling -- Quest VCPU design, sporadic servers, theory vs code walkthrough
  • Notes on Quest scheduling




Week 7
(3/3)
Scheduling -- Linux SCHED_DEADLINE, CBS, PREEMPT-RT concepts
  • Notes on real-time scheduling in Linux
  • Team presentation 1

Memory Management -- TLSF, Pow2 memory allocator, Quest code walkthough of memory management
  • Notes on memory management
  • Quest-V system development assignment demos
  • Team project released




Week 8
(3/10)
Spring Recess


Spring Recess





Week 9
(3/17)
Input/Output -- IDT, device enumeration, PCI configuration space, LAPIC/IOAPIC, MSI
  • Team project proposals due
  • Team presentation 2
  • Notes on IO

USB Part 1 -- Overview of USB concepts (EHCI, xHCI)
  • Notes on USB




Week 10
(3/24)
USB Part 2 -- Communication, xDBC, xDCI
  • Anton Njavro presentation

Differentiated Services -- interrupters work with MSI, Quest IOVCPUs
  • Ryan Ruan presentation
  • Notes on USB Differentiated Services




Week 11
(3/31)
Power Management -- ACPI (power states and table structures), ACPICA documentation
  • Team presentation 3
  • Notes on power management

Power Management in Quest-V
  • Notes on power management in Quest-V




Week 12
(4/7)
Quest-V advanced concepts -- shmcomm, tuned pipes
  • Notes on Quest-V advanced topics

DriveOS & ModelMap
  • Notes on DriveOS




Week 13
(4/14)
Security -- system compartmentalization basic concepts, capability systems Basic Concepts:
  • Team presentation 4
  • Notes on compartmentalization

Security -- system compartmentalization basic concepts, capability systems (continued) Capability Systems: Capability-aware Hardware:
  • Ryan Ruan presentation
  • Notes on capability systems




Week 14
(4/21)
Security -- microkernels and virtualization approaches
  • G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, & S. Winwood, "seL4: Formal Verification of an OS Kernel", SOSP, 2009
  • Team presentation 5
  • Notes on x86 microkernels and secure vms

Security -- vmfunc instructions, CET (control flow enforcement technology), VT-rp (HLAT concepts), CACHE approach: sentry code concepts, examples, comparison with related work
  • Instructor + Shriram Raja: Notes on CACHE




Week 15
(4/28)
Class Project Presentations (Part 1)


Class Project Presentations (Part 2)
  • Last day of classes
  • Team project demos in final exam slot (along with posters)