This course introduces virtualization fundamentals with an emphasis on virtual-machine extensions (VMX) on modern Intel processors. We will discuss what made traditional virtualization on older processors a challenge and how hardware extensions resolve these issues. We will review relevant x86/64-bit architecture and implement code in C and assembly through a series of labs to demonstrate the following concepts:
- VMX root and non-root operation
- Allocating and managing VM control structures
- Virtual Interrupts/Exceptions
- VM-exit controls
- Read shadows
The course also provides students with an introduction to active research in the area with applications to reverse engineering, debugging, operating systems, and Bluepill/Vitriol. Students taking this class will gain a much better understanding of the core functioning of commercial/open source products like Xen, VMware, KVM/QEMU and alternative virtualization approaches such as binary translation.
Learning Objectives
- Develop hands-on core virtualization technology using Intel hardware extensions.
- Create a breadth of knowledge on virtualization fundamentals and encourage research and application to sponsor projects.
- Develop a deep understanding of a technology at the core of today's security solutions.