The architecture of virtual machines

  title={The architecture of virtual machines},
  author={James E. Smith and Ravi Nair},
A virtual machine can support individual processes or a complete system depending on the abstraction level where virtualization occurs. Some VMs support flexible hardware usage and software isolation, while others translate from one instruction set to another. Virtualizing a system or component -such as a processor, memory, or an I/O device - at a given abstraction level maps its interface and visible resources onto the interface and resources of an underlying, possibly different, real system… 

Figures from this paper

System management software for virtual environments
Recently there has been an increased interest in the use of system-level virtualization using mature solutions such as Xen, QEMU, or VMWare. These virtualization platforms are being used in
Virtual machines
One view is that the virtual machine operating system provides another example of a kernel API, in contrast to other kernel APIs, which exports as the kernel API the processor API (e.g., the x86 interface).
A Xen-Based Paravirtualization System toward Efficient High Performance Computing Environments
The experiments show less power consumption and better computing efficiency by executing programs such as matrix multiplication, LINPACK, lower-upper triangular and Primes test sets and the results show better choices of constructing a large-scaled computing system using a virtual machine.
Virtualization: Issues, security threats, and solutions
The security considerations and some associated methodologies by which security breaches can occur are explained, recommendations for how virtualized environments can best be protected are offered, and a set of generalized recommendations that can be applied to achieve secure virtualized implementations are offered.
This review discusses many types of virtualization techniques and their interrupt handling, including full virtualization with binary translation, which is the most effective and reliable technology used ever with great ease of use.
Adaptive virtual machine scheduling and migration for embedded real-time systems
The first contribution is an algorithm for the partitioning of virtual machines to homogeneous cores, which produces mappings that support adaptive scheduling and the protection of safety-critical systems and a virtual machine scheduling architecture that combines real-time guarantees with an adaptive management of the computing power.
Hardware features supporting VM Next time l Midterm ? Virtual Machines
This work compares several state-of-the-art methods used to circumvent the lack of native virtualisation in IA-32 and finds that the new hardware virtualisation support looks very promising for many applications, but may not completely replace other methods.
Virtually Linux Virtualization Techniques in Linux
This paper surveys some of the current virtualization techniques available to Linux users, and it reviews ways to leverage these technologies.
Proteus, a Hybrid Virtualization Platform for Embedded Systems
This work introduces a hybrid configurable hypervisor architecture designed to support real-time applications and allows applications to run unmodified or even partly para-virtualized while using state of the art methodologies to obtain high performance.


Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor
Results indicate that with optimizations, VMware Workstation’s hosted virtualization architecture can match native I/O throughput on standard PCs.
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
The Origin of the VM/370 Time-Sharing System
The historical environment, design influences, and goals which shaped the original VM/370 evolved from an experimental operating system designed and built over fifteen years ago are reviewed.
The Java Virtual Machine Specification
This second edition specifies the newest version of the Java virtual machine and provides a fascinating view into the inner workings of theJava 2 platform.
Virtual Machine Technology: A Bridge From Large Mainframes To Networks Of Small Computers
This paper explores how traditional virtual machine concepts can be extended to networks of cooperating virtual machines running on multiple processors.
Multiple Operating Systems on One Processor Complex
The Processor Resource/Systems Manager™ is introduced, a machine feature on the IBM 3090 Model E and ES/3090™ Model S processors that provides users with a flexible and efficient capability to run multiple operating systems on a single processor complex.
IA-32 execution layer: a two-phase dynamic translator designed to support IA-32 applications on Itanium/spl reg/-based systems
IA-32 execution layer (IA-32 EL) is a new technology that executes IA-32 applications on Intel Itanium processor family systems. Currently, support for IA-32 applications on Itanium-based platforms
IA-32 Execution Layer: a two-phase dynamic translator designed to support IA-32 applications on Itanium®-based systems
Some aspects of the IA-32 Execution Layertechnology are described, including the general two-phasetranslation architecture and the usage of asingle translator for multiple operatingsystems, and some performance results are presented.
Essential .NET: The Common Language Runtime
The CLR as a Better COM Revisited, and Programming with Type at Runtime, the Evolution of the Programming Model, and more.
Inside the As/400
From the Publisher: Frank Soltis, a worldwide spokesman for the AS/400 and the chief architect of the machine, offers an historical and a technical perspective on the AS/400 that cannot be found