Describe the concept of virtualization and the properties of virtualization that make it a powerful technology. Contrast different forms of virtualization and focus on system-level virtualization which has become very popular lately in the computer industry. Describe various architectures for implementing system-level virtualization.
Academics and researchers: With your help, we can expand and enhance this syllabus. If you would like to collaborate on classroom lab or assignment courseware, or if you have your own previously developed courseware items to share, please <a target="_blank" href="/contact.jspa">contact</a> the govirtual team.
Lecture Slides: What is Virtualization? Introduction to Virtual Machines
Lecture Notes/Guide: Lecture notes are included in slides above. This lecture provides a high-level description of what virtualization is, including the concept of a virtual machine monitor, virtualization properties, and its applications. A taxonomy of virtualization types, from language-level/process virtualization to full system virtualization is discussed. Finally, an overview of several monitor and hypervisor architectures is provided, supported by real-world examples.
Additional Slides:
Why Virtualize?
Highlights the major benefits of virtualizing the computer infrastructure to motivate the subject. These benefits may be covered in more depth by other lectures found in this courseware.
Virtualization 101
VMware lecture at MIT IAP Class in 2007. A comprehensive introduction to virtualization technology.
Reading List:
Rosenblum and Garfinkel, "Virtual Machine Monitors: Current Technology and Future Trends," IEEE Computer, May 2005.
Robert P. Goldberg, "Survey of Virtual Machine Research", IEEE Computer, June 1974.
Gerald J. Popek, Robert P. Goldberg, "Formal Requirements for Virtualizable Third Generation Architectures", Communications of the ACM, July 1974.
This paper summarizes the three fundamental requirements of virtualization, in terms of equivalence, resource control and efficiency. A summary of these requirements can be found in Wikipedia’s entry on this paper. http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements
James E. Smith, Ravi Nair, "The Architecture of Virtual Machines", IEEE Computer (May 2005).
Jim Smith and Ravi Nair, "Virtual Machines: Versatile Platforms for Systems and Processes", Morgan Kauffman, ISBN-13: 978-1-55860-910-5, June 2005 (Further details) http://www.elsevier.com/wps/find/bookdescription.cws_home/705072/description#des cription
Chris Wolf and Eric Halter, "Virtualization from the Desktop to the Enterprise", APress, ISBN-13: 978-1-59059-495-7, May 2005 (On-line version) http://books.google.com/books?hl=en&id=qXw9p1nzb9QC&dq=%22virtualization+from+th e+desktop%22&printsec=frontcover&source=web&ots=es-yvwPAZE&sig=_sc5rWty6vCbeKj4k 9bdH6JY7LE#PPP8,M1
Wikipedia's entry on "virtualization" includes some useful links, while providing a brief overview of processing and resource virtualization. http://en.wikipedia.org/wiki/Virtualization
Class Assignments:
Simple initial assignments could focus on setting up a guest VM, running an operating system such as Linux, on a hosted platform using freely available tools such as VMware Player, Bochs, QEMU, etc. Using Bochs or QEMU, for example, exposes users to lower-level tasks such as setting up virtual disk images.
Using a guest OS such as Linux, experiment with simple interposition tasks. One assignment here could be to implement a kernel module to support interposition on an applications system calls (e.g., for certain I/O tasks), to do something similar to ptrace or strace.
Another assignment might be to compare the efficiency and performance of applications run within VMs against running on a native/host OS. Sample benchmark applications could focus on the costs of system calls, I/O operations, process and memory management. Advanced assignments could look at costs of virtualization on platforms with hardware support for virtualization (Intel VT, AMD-V) versus those that rely exclusively on software.
Click below to download the entire virtualization course:
Complete Virtualization Course Download|| |Introductory||