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