|
Virtualizing the physical resources of a computing system to achieve improved degrees of sharing and
utilization is a well-established concept that goes back decades [1]. Full virtualization of all system
resources (including processors, memory and I/O devices) makes it possible to run multiple operating systems
(OSs) on a single physical platform. In contrast to a non-virtualized system, in which a single OS is solely
in control of all hardware platform resources, a virtualized system includes a new layer of software, called
a virtual-machine monitor (VMM). The principal role of the VMM is to arbitrate access to the underlying
physical host platform resources so that these resources can be shared among multiple OSs that are "guests"
of the VMM. The VMM presents to each guest OS a set of virtual platform interfaces that constitute a virtual
machine (VM).
Virtualization was once confined to specialized, proprietary, high-end server and mainframe systems. It is
now becoming more broadly available and is supported in off-the-shelf IA-based systemssystems based on Intel®
architecture hardware. This development is due in part to the steady performance improvements of IA-based
systems, which mitigate traditional virtualization performance overheads. Other factors include new creative
software approaches addressing the difficulties inherent to IA virtualization [24] and the emergence of
novel applications for virtualization in both industry and academia.
In the sections that follow, we examine some of the technical difficulties with bringing virtualization to
IA-based systems and present an overview of Intel® Virtualization Technology (VT), which provides hardware
assists for overcoming these difficulties. The first generation of VT focuses on a set of hardware assists
that facilitates the virtualization of IA processors. VT-x refers to new architectural extensions that aid in
IA-32 processor virtualization, while VT-i refers to a set of assists for virtualizing Itanium processors.
VT-x and VT-i eliminate many of the problems that make writing a VMM for IA-based systems a challenge and hence
make possible the broader availability of virtualization technology in both server and client systems.
|