Broadly speaking, virtualization technology can support “pure” execution of guest applications, wherein all guest program instructions are handled by the VM platform: privileged instructions are handled by the hypervisor and common ones run natively at full speed. Alternately, guest program code can be pre-processed (at build-time, load-time, etc.) to remove direct invocation of privileged instructions and insert explicit calls to hypervisor APIs (“hypercalls”). This latter approach streamlines execution by reducing run-time overhead and is termed para-virtualization.
This approach to virtualization requires the removal of non-privileged sensitive instructions from the code executing in the virtual machine. Para-virtualization techniques replace instructions in the original code by either an explicit hypervisor call (trapping instruction) or a jump to user-level emulation code.
Get
|
|