Skip to Main Content
The study of design issues and implementation techniques for hypervisors is becoming an increasingly important aspect of operating systems pedagogy. There is a demand for students, especially in the field of information assurance, who understand the security issues exposed by the improper use of virtualization functionality provided by modern processors and how virtualization can be exploited to improve system security. Furthermore, students need to understand the process isolation vs. performance tradeoffs that must be made when designing hypervisors. This paper describes the experience of the authors in teaching a single-semester course to undergraduate students in designing, implementing, and debugging a hyper visor for an Intel 64 processor. Advanced topics in the course include how to capture and manage I/O and interrupt events in the hyper visor. The paper also discusses the use of a PCIe-based hardware module for monitoring and debugging the hyper visor implementation.