|
To address the virtualization challenges that the IA-32 and Itanium® architecture present, VMM designers have
developed creative techniques for modifying guest software (source or binary). Denali [5] and Xen* [2] are
examples of VMMs that use source-level modifications in a technique called paravirtualization. Developers of
these VMMs modify the source code of a guest OS to create an interface that is easier to virtualize.
Paravirtualization offers high performance and does not require changes to guest applications. A disadvantage
of paravirtualization is that it limits the range of supported OSs; VMMs that rely on paravirtualization
cannot support an OS whose source code the VMM's developers have not modified.
A VMM can support unmodified OSs by transforming guest-OS binaries on-the-fly to handle virtualization-sensitive operations. VMMs that
use such binary-translation techniques include those developed by VMware [4] as well as Virtual PC* and Virtual Server* from Microsoft.
[3]. Such VMMs support a broader range of OSs than VMMs that use paravirtualization.
A central design goal for Intel® VT has been to eliminate the need for CPU paravirtualization and binary
translation techniques, to simplify the implementation of robust VMMs that can support a broad range of
unmodified guest OSs, and to maintain high levels of performance.
|