ABSTRACT
Virtual machines (VMs) are an increasingly ubiquitous feature of modern computing, yet the interested student or professional has limited resources to learn how VMs work. In particular, there is a lack of "hands-on" exercises in constructing a virtual machine monitor (VMM, or hypervisor), which are both simple enough to understand completely but realistic enough to capture the practical challenges in using this technology. This paper describes a set of assignments to extend a small, pedagogical operating system (OS) to form a hypervisor and host itself. This pedagogical hypervisor, called HOSS, adds roughly 1,000 lines of code to the MIT JOS source, and includes a set of guided exercises. Initial results with HOSS in an upper-level virtualization course indicate that students enjoyed the assignments and were able to apply what they learned to solve different virtualization-related problems. HOSS is publicly available.
- AMD. AMD-V Nested Paging. White Paper, AMD: http://developer.amd.com/assets/NPT-WP-1/%201-final-TM.pdf, July 2008.Google Scholar
- AMD. AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.26. White Paper, AMD: http://support.amd.com/us/Processor_TechDocs/34434-IOMMU-Rev_1.26_2-11-09.pdf, Nov 2009.Google Scholar
- C. L. Anderson and M. Nguyen. A survey of contemporary instructional operating systems for use in undergraduate courses. J. Comput. Sci. Coll., 21(1):183--190, Oct. 2005. Google ScholarDigital Library
- J. Andrus, C. Dall, A. V. Hof, O. Laadan, and J. Nieh. Cells: A virtual mobile smartphone architecture. In SOSP, pages 173--187, 2011. Google ScholarDigital Library
- J. Andrus and J. Nieh. Teaching operating systems using android. In SIGCSE, pages 613--618, 2012. Google ScholarDigital Library
- B. Atkin and E. G. Sirer. Portos: An educational operating system for the post-pc environment. In SIGCSE, pages 116--120, 2002. Google ScholarDigital Library
- P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield. Xen and the art of virtualization. In SOSP, pages 164--177, 2003. Google ScholarDigital Library
- F. Bellard. Qemu, a fast and portable dynamic translator. In USENIX ATC, pages 41--41, 2005. Google ScholarDigital Library
- M. Ben-Yehuda, M. D. Day, Z. Dubitzky, M. Factor, N. Har'El, A. Gordon, A. Liguori, O. Wasserman, and B.-A. Yassour. The Turtles Project: Design and implementation of nested virtualization. In OSDI, 2010. Google ScholarDigital Library
- D. Brylow. An experimental laboratory environment for teaching embedded operating systems. In SIGCSE, pages 192--196, 2008. Google ScholarDigital Library
- E. Bugnion, S. Devine, M. Rosenblum, J. Sugerman, and E. Y. Wang. Bringing virtualization to the x86 architecture with the original VMware workstation. ACM Trans. Comput. Syst., 30(4):12:1--12:51, Nov. 2012. Google ScholarDigital Library
- D. Chisnall. The Definitive Guide to the Xen Hypervisor. Prentice Hall Press, 1st edition, 2007. Google ScholarDigital Library
- W. A. Christopher, S. J. Procter, and T. E. Anderson. The nachos instructional operating system. In USENIX Winter Conference, pages 4--4, 1993. Google ScholarDigital Library
- S. Cooper. Vmware android handset virtualization hands-on. Retrieved Sept. 1, 2014 from http://www.engadget.com/2011/02/15/vmware-android-handset-virtualization-hands-on/, 2011.Google Scholar
- R. Davoli and M. Goldweber. Virtual square (v2) in computer science education. In ITiCSE, pages 301--305, 2005. Google ScholarDigital Library
- P. Dinda. Eecs 441: Resource virtualization, winter 2014. Retrieved Sept. 1, 2014 from http://pdinda.org/virt-w14/.Google Scholar
- D. R. Engler, M. F. Kaashoek, and J. O'Toole, Jr. Exokernel: An operating system architecture for application-level resource management. In SOSP, pages 251--266, 1995. Google ScholarDigital Library
- R. Hess and P. Paulson. Linux kernel projects for an undergraduate operating systems course. In SIGCSE, pages 485--489, 2010. Google ScholarDigital Library
- D. A. Holland, A. T. Lim, and M. I. Seltzer. A new instructional operating system. In SIGCSE, pages 111--115, 2002. Google ScholarDigital Library
- JOS OS Lab. Retrieved Sept. 1, 2014 from http://pdos.csail.mit.edu/6.828.Google Scholar
- M. Ketel. A virtualized environment for teaching IT/CS laboratories. In SE, pages 92:1--92:2, 2010. Google ScholarDigital Library
- O. Laadan, J. Nieh, and N. Viennot. Teaching operating systems using virtual appliances and distributed version control. In SIGCSE, pages 480--484, 2010. Google ScholarDigital Library
- B. Lawson and L. Barnett. Using ipodlinux in an introductory os course. In SIGCSE, pages 182--186, 2008. Google ScholarDigital Library
- H. Liu, X. Chen, and Y. Gong. Babyos: A fresh start. In SIGCSE, pages 566--570, 2007. Google ScholarDigital Library
- J. Owens. Using virtualization to teach Linux system administration in online courses. In IBM ICVCI, 2007.Google Scholar
- PCI-SIG. Address translation services 1.1 specification. http://www.pcisig.com/members/downloads/specifications/iov/ats_r1.1_26Jan09.pdf.Google Scholar
- B. Pfaff, A. Romano, and G. Back. The pintos instructional operating system kernel. In SIGCSE, pages 453--457, 2009. Google ScholarDigital Library
- R. Russell. Lguest: The simple x86 hypervisor. Retrieved Sept. 1, 2014 from http://lguest.ozlabs.org.Google Scholar
- A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. 9th edition, 2012. Google ScholarDigital Library
- J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann Publishers Inc., 2005. Google ScholarDigital Library
- W. Sun, V. Katta, K. Krishna, and R. Sekar. V-NetLab: An approach for realizing logically isolated networks for security experiments. In CSET, pages 5:1--5:6, 2008. Google ScholarDigital Library
- A. S. Tanenbaum. A unix clone with source code for operating systems courses. OSR, 21(1):20--29, Jan. 1987. Google ScholarDigital Library
- A. S. Tanenbaum and H. Bos. Modern Operating Systems. 4th edition, 2014. Google ScholarDigital Library
- R. Uhlig, G. Neiger, D. Rodgers, A. L. Santoni, F. C. Martins, A. V. Anderson, S. M. Bennett, lain Kägi, F. H. Leung, and L. Smith. Intel virtualization technology. In IEEE Computer, pages 48--56, 2005. Google ScholarDigital Library
Index Terms
- Teaching Virtualization by Building a Hypervisor
Recommendations
Live gang migration of virtual machines
HPDC '11: Proceedings of the 20th international symposium on High performance distributed computingThis paper addresses the problem of simultaneously migrating a group of co-located and live virtual machines (VMs), i.e, VMs executing on the same physical machine. We refer to such a mass simultaneous migration of active VMs as "live gang migration". ...
Virtio network paravirtualization driver
One of the techniques used to improve I/O performance of virtual machines is paravirtualization. Paravirtualized devices are intended to reduce the performance overhead on full virtualization where all hardware devices are emulated. The interface of a ...
Pre-Copy and post-copy VM live migration for memory intensive applications
Euro-Par'12: Proceedings of the 18th international conference on Parallel processing workshopsVirtualization technology provides a means for server consolidation, reducing the number of physical servers required for running a given workload. Virtual Machine (VM) live migration facilitates the transfer of a running (VM) between physical hosts ...
Comments