The NOVA virtualization architecture is comprised of a
microhypervisor and a capability-based multiserver userland with a
specific focus on enabling secure and efficient virtualization using x86
hardware virtualization extensions (VT-x, VT-d, SR-IOV). It does so by
moving almost all of the actual "virtualization" into a per-VM userspace
component that is not in the Trusted Computing Base of other virtual
machines. This talk will give an overview of NOVA's unique execution
model and API with a strong focus on how this enables efficient
execution of a VMM. Specifically, this talk will cover how tasks and
threads are realized in NOVA, how communication between threads works,
how VM exits are handled in NOVA and how this extends to SMP machines.