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 SDKPart 1 -- Overview of the Quest RTOS and Quest-V partitioning hypervisor





Week 2
(1/27)
Quest-V SDK Part 2 -- including assignment discussion

Walkthrough of markdown documents, code examples, toolchain, example demos
  • See markdown documents




Week 3
(2/3)
System structure -- monoliths, microkernels, virtual machines

Virtualization -- VT-x basics, including VMCS details




Week 4
(2/10)
Virtualization -- guest address translation: shadow page tables/EPTs

Virtualization -- Quest-V control flow





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

x86 Architecture -- ISA, inline assembly, 32- vs 64-bit, switching into 64-bit mode, 2- vs 4/5-level paging
  • x86 notes




Week 6 (2/24)
Quest walkthrough Part 1 - features, code structure, bootstrapping, memory layout, address spaces, threads, interrupts, syscalls,...
  • Quest notes

Quest walkthrough Part 2 -- user-kernel control flow, per-CPU data structures, modules, driver subsystem, serial debugging,...





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

Batched Priority Locking (BPL) -- explanation and comparison with alternative approaches
  • Shriram Raja presentation
  • Notes on BPL
  • Quest-V system development assignment demos
  • Team project released




Week 8 (3/10)
Spring Recess



Spring Recess






Week 9 (3/17)
Scheduling -- Quest VCPU design, sporadic servers, theory vs code walkthrough
  • Team project proposals due
  • Notes on Quest scheduling

Scheduling -- Linux SCHED_DEADLINE, CBS, PREEMPT-RT concepts
  • Team presentation 1




Week 10 (3/24)
Memory Management -- TLSF, Pow2 memory allocator, Quest code walkthough of memory management
  • Notes on memory management

Input/Output -- IDT, device enumeration, PCI configuration space, LAPIC/IOAPIC, MSI
  • Team presentation 2
  • Notes on IO




Week 11
(3/31)
USB Part 1 -- Overview of USB concepts (EHCI, xHCI)
  • Notes on USB

USB Part 2 -- Communication, xDBC, xDCI
  • Anton Njavro presentation




Week 12 (4/7)
Power Management -- ACPI (power states and table structures), ACPICA documentation

  • Team presentation 3
  • Notes on power management

No class (PI meeting)






Week 13 (4/14) Differentiated Services -- interrupters work with MSI, Quest IOVCPUs
  • Ryan Ruan presentation
  • Notes on USB Differentiated Services

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




Week 14 (4/21)
Quest-V advanced concepts -- shmcomm, tuned pipes, DriveOS & ModelMap
  • Notes on Quest-V advanced topics: DriveOS

Security -- system compartmentalization basic concepts, capability systems Basic Concepts:

Capability Systems:

Capability-aware Hardware:

  • Team Presentation 4
  • Notes on compartmentalization+ capability systems




Week 15
(4/28)
Security -- vmfunc instructions, CET (control flow enforcement technology), VT-rp (HLAT concepts), CACHE approach: sentry code concepts, examples, comparison with related work
  • Notes on x86 microkernels and secure VMs
  • Instructor + Shriram Raja + Ryan Ruan: Notes on CACHE

Class Project Presentations


Poster Session

  • Team project demos in final exam slot with posters