Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

The evolution of an x86 virtual machine monitor

Published: 13 December 2010 Publication History

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.
[2]
O. Agesen. Binary translation of returns. In Workshop on Binary Instrumentation and Applications, pages 7--14, October 2006.
[3]
AMD. AMD64 Architecture Programmer s Manual Volume 2: System Programming, June 2010. Chapter 15.
[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.
[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.
[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.
[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.
[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.
[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.
[10]
Intel Corporation. Intel® Virtualization Technology Specification for the IA-32 Intel® Architecture, April 2005.
[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.
[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.
[13]
G. J. Popek and R. P. Goldberg. Formal requirements for virtualizable third generation architectures. Commun. ACM, 17(7):412--421, 1974.
[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.
[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.
[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.
[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.
[18]
VMware. Timekeeping in VMware Virtual Machines, May 2010. http://www.vmware.com/vmtn/resources/238.
[19]
C. A. Waldspurger. Memory resource management in VMware ESX server. SIGOPS Oper. Syst. Rev., 36(SI):181--194, 2002.
[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.
[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.

Cited By

View all
  • (2024)RISC-V Virtualization: Exploring Virtualization in an Open Instruction Set ArchitectureProceedings of the 2024 5th International Conference on Computing, Networks and Internet of Things10.1145/3670105.3670188(473-477)Online publication date: 24-May-2024
  • (2023)Going beyond the Limits of SFI: Flexible and Secure Hardware-Assisted In-Process Isolation with HFIProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582023(266-281)Online publication date: 25-Mar-2023
  • (2019)PLC 4.0: A Control System for Industry 4.0IECON 2019 - 45th Annual Conference of the IEEE Industrial Electronics Society10.1109/IECON.2019.8927026(5513-5518)Online publication date: Oct-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 44, Issue 4
December 2010
152 pages
ISSN:0163-5980
DOI:10.1145/1899928
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 December 2010
Published in SIGOPS Volume 44, Issue 4

Check for updates

Author Tags

  1. MMU
  2. SVM
  3. TLB
  4. VT
  5. dynamic binary translation
  6. nested paging
  7. vSMP
  8. virtual machine monitor
  9. virtualization
  10. x86

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)45
  • Downloads (Last 6 weeks)8
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)RISC-V Virtualization: Exploring Virtualization in an Open Instruction Set ArchitectureProceedings of the 2024 5th International Conference on Computing, Networks and Internet of Things10.1145/3670105.3670188(473-477)Online publication date: 24-May-2024
  • (2023)Going beyond the Limits of SFI: Flexible and Secure Hardware-Assisted In-Process Isolation with HFIProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582023(266-281)Online publication date: 25-Mar-2023
  • (2019)PLC 4.0: A Control System for Industry 4.0IECON 2019 - 45th Annual Conference of the IEEE Industrial Electronics Society10.1109/IECON.2019.8927026(5513-5518)Online publication date: Oct-2019
  • (2018)AltoProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237022(1-7)Online publication date: 12-Sep-2018
  • (2018)Exploratory Data Analysis of Fault Injection Campaigns2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2018.00033(191-202)Online publication date: Jul-2018
  • (2017)Hardware and Software Support for VirtualizationSynthesis Lectures on Computer Architecture10.2200/S00754ED1V01Y201701CAC03812:1(1-206)Online publication date: 21-Feb-2017
  • (2017)Characterizing User-to-User Connectivity with RIPE AtlasProceedings of the 2017 Applied Networking Research Workshop10.1145/3106328.3106332(4-6)Online publication date: 15-Jul-2017
  • (2015)Boosting GPU virtualization performance with hybrid shadow page tablesProceedings of the 2015 USENIX Conference on Usenix Annual Technical Conference10.5555/2813767.2813806(517-528)Online publication date: 8-Jul-2015
  • (2015)Fast Two-Level Address Translation for Virtualized SystemsIEEE Transactions on Computers10.1109/TC.2015.240102264:12(3461-3474)Online publication date: 1-Dec-2015
  • (2015)Performance Evaluation of Containers for HPCEuro-Par 2015: Parallel Processing Workshops10.1007/978-3-319-27308-2_65(813-824)Online publication date: 18-Dec-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media