We teach two operating systems classes. The first is an introductory class built around xv6, a small re-implementation of an early UNIX kernel that is simple enough to read and understand in full. The second is an advanced class centered around virtualization: students learn how modern kernels and hypervisors (Linux, Xen, KVM) work, and build their own hypervisor for xv6 using hardware virtualization support (Intel VT-x). Along the way they also work on fast device interfaces, container isolation, unikernels, and fast inter-process communication.
Courses
-
CS 5460/6460: Operating Systems. Virtual memory, kernel/user modes, system calls, threads, context switches, interrupts, file systems, and synchronization, explored hands-on by extending xv6.
-
CS 5465/6465: Advanced Operating System Implementation. Hardware virtualization, paravirtualization, containers, microkernels and unikernels, and hardware isolation. Students build a VT-x hypervisor for xv6. Requires CS 5460.