Difference between revisions of "Virtualization Fundamentals"

From Open-IOV
Jump to navigation Jump to search
(Added descriptions of papers indexed.)
Line 1: Line 1:
This following page is intended to index and summarize information related to the fundamentals of virtualization of computer systems.
This following page is intended to index and summarize information related to the fundamentals of virtualization of computer systems.


==  [https://en.m.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements Popek and Goldberg Virtualization Requirements] ==
The '''Popek and Goldberg virtualization requirements''' are a set of conditions sufficient for a computer architecture to support system virtualization efficiently. They were introduced by Gerald J. Popek and Robert P. Goldberg in their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures". Even though the requirements are derived under simplifying assumptions, they still represent a convenient way of determining whether a computer architecture supports efficient virtualization and provide guidelines for the design of virtualized computer architectures.


[https://en.m.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements Popek and Goldberg Virtualization Requirements]
== [https://inst.eecs.berkeley.edu//~cs252/sp17/papers/goldberg-vm-survey.pdf Goldberg Survey of Virtual Machine Research] ==
 
The complete instruction-by-instruction simulation of one computer system on a different system is a well-known computing technique. It is often used for software development when a hardware base is being altered. For example, if a programmer is developing software for some new special purpose (e.g., aerospace) computer X which is under construction and as yet unavailable, he will likely begin by writing a simulator for that computer on some available general-purpose machine G. The simulator will provide a detailed simulation of the special-purpose environment X, including its processor, memory, and I/O devices. Except for possible timing dependencies, programs which run on the “simulated machine X” can later run on the “real machine X” (when it is finally built and checked out) with identical effect. The programs running on X can be arbitrary — including code to exercise simulated I/O devices, move data and instructions anywhere in simulated memory, or execute any instruction of the simulated machine. The simulator provides a layer of software filtering which protects the resources of the machine G from being misused by programs on X.
[https://inst.eecs.berkeley.edu//~cs252/sp17/papers/goldberg-vm-survey.pdf Goldberg Survey of Virtual Machine Research]

Revision as of 14:31, 7 April 2022

This following page is intended to index and summarize information related to the fundamentals of virtualization of computer systems.

Popek and Goldberg Virtualization Requirements

The Popek and Goldberg virtualization requirements are a set of conditions sufficient for a computer architecture to support system virtualization efficiently. They were introduced by Gerald J. Popek and Robert P. Goldberg in their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures". Even though the requirements are derived under simplifying assumptions, they still represent a convenient way of determining whether a computer architecture supports efficient virtualization and provide guidelines for the design of virtualized computer architectures.

Goldberg Survey of Virtual Machine Research

The complete instruction-by-instruction simulation of one computer system on a different system is a well-known computing technique. It is often used for software development when a hardware base is being altered. For example, if a programmer is developing software for some new special purpose (e.g., aerospace) computer X which is under construction and as yet unavailable, he will likely begin by writing a simulator for that computer on some available general-purpose machine G. The simulator will provide a detailed simulation of the special-purpose environment X, including its processor, memory, and I/O devices. Except for possible timing dependencies, programs which run on the “simulated machine X” can later run on the “real machine X” (when it is finally built and checked out) with identical effect. The programs running on X can be arbitrary — including code to exercise simulated I/O devices, move data and instructions anywhere in simulated memory, or execute any instruction of the simulated machine. The simulator provides a layer of software filtering which protects the resources of the machine G from being misused by programs on X.