Learning Outcomes & Objectives

The course is focused on providing students with the fundamental tools to understand the key role that virtual machines plays in today’s computing infrastructure. The subject is mainly focused in the theory behind System Level Virtual Machines and its practical use in one of the most common virtualization platforms.

Lecture Notes

  • Course Introduction Slides
  • Performance Evaluation Slides
  • Public Clouds (Google Compute Engine) Slides
  • Containers Slides
  • Introduction to Virtual Machines Slides
  • Popek/Goldberg Theorem Slides
  • Virtualization without Architectural Support Slides
  • CPU: X86 Virtualization with VT-x Slides
  • Memory: X86 Virtualization with EPT Slides
  • X86 Virtualization with VT-x Slides
  • I/O Virtualization without Hardware Support Slides
  • I/O Virtualization with Hardware Support Slides
  • Basic Computer Security Concepts Slides
  • Secure Processors Architectures Slides
  • Trusted Execution Environments Slides
  • Hardware Root of Trust Slides
  • Memory Protection Slides
  • Multiprocessor Security Slides
  • Cover and Side Threads and Protections Slides



  • [1] E. Bugnion, J. Nieh, and D. Tsafrir, “Hardware and Software Support for Virtualization,” Synth. Lect. Comput. Archit., vol. 12, no. 1, pp. 1–206, Feb. 2017.
  • [2] J. Szefer, “Principles of secure processor architecture design,” Synth. Lect. Comput. Archit., vol. 13, no. 3, pp. 1–173, 2018.