skip to main content
research-article

The evolution of an x86 virtual machine monitor

Published:13 December 2010Publication History
Skip Abstract Section

Abstract

Twelve years have passed since VMware engineers first virtualized the x86 architecture. This technological breakthrough kicked off a transformation of an entire industry, and virtualization is now (once again) a thriving business with a wide range of solutions being deployed, developed and proposed. But at the base of it all, the fundamental quest is still the same: running virtual machines as well as we possibly can on top of a virtual machine monitor.

We review how the x86 architecture was originally virtualized in the days of the Pentium II (1998), and follow the evolution of the virtual machine monitor forward through the introduction of virtual SMP, 64 bit (x64), and hardware support for virtualization to finish with a contemporary challenge, nested virtualization.

References

  1. K. Adams and O. Agesen. A comparison of software and hardware techniques for x86 virtualization. In ASPLOS-XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pages 2--13, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. O. Agesen. Binary translation of returns. In Workshop on Binary Instrumentation and Applications, pages 7--14, October 2006.Google ScholarGoogle Scholar
  3. AMD. AMD64 Architecture Programmer s Manual Volume 2: System Programming, June 2010. Chapter 15.Google ScholarGoogle Scholar
  4. V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. In PLDI 00: Proceedings of the ACM SIGPLAN 2000 conference on programming language design and implementation, pages 1--12, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 10: 9th USENIX Symposium on Opearting Systems Design and Implementation. USENIX Association, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Bhargava, B. Serebrin, F. Spadini, and S. Manne. Accelerating two-dimensional page walks for virtualized systems. In ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, pages 26--35, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. E. Ceruzzi. History of digital computers. In A. Ralston, E. D. Reilly, and D. Hemmendinger, editors, Encyclopedia of Computer Science, pages 545--570. Nature Publishing Group, Londo, UK, 4th edition, 2000.Google ScholarGoogle Scholar
  8. Y. Chen. Dynamic binary translation from x86-32 code to x86-64 code for virtualization. Master s thesis, Massachusetts Institute of Technology, 2009. http://hdl.handle.net/1721.1/53095.Google ScholarGoogle Scholar
  9. B. Cmelik and D. Keppel. Shade: a fast instruction-set simulator for execution profiling. In SIGMETRICS 96: Proceedings of the 1996 ACM SIGMETRICS international conference on measurement and modeling of computer systems, pages 128--137, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Intel Corporation. Intel® Virtualization Technology Specification for the IA-32 Intel® Architecture, April 2005.Google ScholarGoogle Scholar
  11. D. L. Osisek, K. M. Jackson, and P. H. Gum. ESA/390 interpretive-execution architecture, foundation for VM/ESA. IBM Systems Journal, 30(1):34--51, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W.-C. Poon and A. K. Mok. Bounding the running time of interrupt and exception forwarding in recursive virtualization for the x86 architecture. Technical Report VMware-TR-2010-003, VMware, Inc., 3401 Hillview Avenue, Palo Alto, CA 94303, USA, Oct 2010.Google ScholarGoogle Scholar
  13. G. J. Popek and R. P. Goldberg. Formal requirements for virtualizable third generation architectures. Commun. ACM, 17(7):412--421, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. J. Popek and C. S. Kline. The PDP-11 virtual machine architecture: A case study. In Proceedings of the fifth ACM symposium on Operating systems principles, SOSP 75, pages 97--105, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. S. Robin and C. E. Irvine. Analysis of the intel pentium s ability to support a secure virtual machine monitor. In SSYM 00: Proceedings of the 9th conference on USENIX Security Symposium, Berkeley, CA, USA, 2000. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. J. Scales, M. Nelson, and G. Venkitachalam. The design of a practical system for fault-tolerant virtual machines. SIGOPS Oper. Syst. Rev., 44(4), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Sugerman, G. Venkitachalam, and B.-H. Lim. Virtualizing I/O devices on VMware Workstation s hosted virtual machine monitor. In USENIX Annual Technical Conference, General Track, pages 1--14, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. VMware. Timekeeping in VMware Virtual Machines, May 2010. http://www.vmware.com/vmtn/resources/238.Google ScholarGoogle Scholar
  19. C. A. Waldspurger. Memory resource management in VMware ESX server. SIGOPS Oper. Syst. Rev., 36(SI):181--194, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. D. Wittie. Microprocessors and microcomputers. In A. Ralston, E. D. Reilly, and D. Hemmendinger, editors, Encyclopedia of Computer Science, pages 1161--1169. Nature Publishing Group, London, UK, 4th edition, 2000.Google ScholarGoogle Scholar
  21. M. Xu, V. Malyugin, J. Sheldon, G. Venkitachalam, and B. Weissman. Retrace: Collecting execution trace with virtual machine deterministic replay. In Proceedings of the 3rd Annual Workshop on Modeling, Benchmarking and Simulation, 2007.Google ScholarGoogle Scholar

Index Terms

  1. The evolution of an x86 virtual machine monitor

            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

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader