skip to main content
10.1145/2676723.2677254acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Teaching Virtualization by Building a Hypervisor

Published:24 February 2015Publication History

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.

References

  1. AMD. AMD-V Nested Paging. White Paper, AMD: http://developer.amd.com/assets/NPT-WP-1/%201-final-TM.pdf, July 2008.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Andrus and J. Nieh. Teaching operating systems using android. In SIGCSE, pages 613--618, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. Atkin and E. G. Sirer. Portos: An educational operating system for the post-pc environment. In SIGCSE, pages 116--120, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. Bellard. Qemu, a fast and portable dynamic translator. In USENIX ATC, pages 41--41, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Brylow. An experimental laboratory environment for teaching embedded operating systems. In SIGCSE, pages 192--196, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Chisnall. The Definitive Guide to the Xen Hypervisor. Prentice Hall Press, 1st edition, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. W. A. Christopher, S. J. Procter, and T. E. Anderson. The nachos instructional operating system. In USENIX Winter Conference, pages 4--4, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. R. Davoli and M. Goldweber. Virtual square (v2) in computer science education. In ITiCSE, pages 301--305, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Dinda. Eecs 441: Resource virtualization, winter 2014. Retrieved Sept. 1, 2014 from http://pdinda.org/virt-w14/.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Hess and P. Paulson. Linux kernel projects for an undergraduate operating systems course. In SIGCSE, pages 485--489, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. A. Holland, A. T. Lim, and M. I. Seltzer. A new instructional operating system. In SIGCSE, pages 111--115, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. JOS OS Lab. Retrieved Sept. 1, 2014 from http://pdos.csail.mit.edu/6.828.Google ScholarGoogle Scholar
  21. M. Ketel. A virtualized environment for teaching IT/CS laboratories. In SE, pages 92:1--92:2, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. O. Laadan, J. Nieh, and N. Viennot. Teaching operating systems using virtual appliances and distributed version control. In SIGCSE, pages 480--484, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. B. Lawson and L. Barnett. Using ipodlinux in an introductory os course. In SIGCSE, pages 182--186, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. H. Liu, X. Chen, and Y. Gong. Babyos: A fresh start. In SIGCSE, pages 566--570, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Owens. Using virtualization to teach Linux system administration in online courses. In IBM ICVCI, 2007.Google ScholarGoogle Scholar
  26. PCI-SIG. Address translation services 1.1 specification. http://www.pcisig.com/members/downloads/specifications/iov/ats_r1.1_26Jan09.pdf.Google ScholarGoogle Scholar
  27. B. Pfaff, A. Romano, and G. Back. The pintos instructional operating system kernel. In SIGCSE, pages 453--457, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Russell. Lguest: The simple x86 hypervisor. Retrieved Sept. 1, 2014 from http://lguest.ozlabs.org.Google ScholarGoogle Scholar
  29. A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. 9th edition, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann Publishers Inc., 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. A. S. Tanenbaum. A unix clone with source code for operating systems courses. OSR, 21(1):20--29, Jan. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. S. Tanenbaum and H. Bos. Modern Operating Systems. 4th edition, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Teaching Virtualization by Building a Hypervisor

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education
        February 2015
        766 pages
        ISBN:9781450329668
        DOI:10.1145/2676723

        Copyright © 2015 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 24 February 2015

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        SIGCSE '15 Paper Acceptance Rate105of289submissions,36%Overall Acceptance Rate1,595of4,542submissions,35%

        Upcoming Conference

        SIGCSE Virtual 2024

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader