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




Week 3
(2/3)
Virtualization and Microkernels -- continued

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

Quest overview -- features, code structure, boot up/initialization




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)




Week 6
(2/24)
Batched Priority Locking (BPL) -- explanation and comparison with alternative approaches

Scheduling -- Quest VCPU design, sporadic servers, theory vs code walkthrough




Week 7
(3/3)
Scheduling -- Linux SCHED_DEADLINE, CBS, PREEMPT-RT concepts

Memory Management -- TLSF, Pow2 memory allocator, Quest code walkthough of memory management




Week 8
(3/10)
Spring Recess


Spring Recess





Week 9
(3/17)
Input/Output -- IDT, device enumeration, PCI configuration space, LAPIC/IOAPIC, MSI

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




Week 10
(3/24)
USB Part 2 -- Communication, xDBC, xDCI

Differentiated Services -- interrupters work with MSI, Quest IOVCPUs




Week 11
(3/31)
Power Management -- ACPI (power states and table structures), ACPICA documentation

Power Management in Quest-V




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

DriveOS & ModelMap




Week 13
(4/14)
Security -- system compartmentalization basic concepts, capability systems Basic Concepts:

Security -- system compartmentalization basic concepts, capability systems (continued) Capability Systems: Capability-aware Hardware:




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

Security -- vmfunc instructions, CET (control flow enforcement technology), VT-rp (HLAT concepts), CACHE approach: sentry code concepts, examples, comparison with related work




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


Class Project Presentations (Part 2)
  • Last day of classes