原文链接:A Comparison of Software and Hardware Techniques for x86 Virtualization
这篇文章发表于2006年10月,是一个KVM还没有开发出来的时代。
这篇文章主要比较了对x86平台的硬件和软件虚拟化技术。
- x86平台直到最近(指2005年)才允许经典的
trap-and-emulate
虚拟化方式。要知道这种虚拟化方式是建立于硬件基础上的。所以文章比较软件VMM和新型的需要硬件支持的VMM,发现软件反而更快,于是文章想找出原因。 - 为什么“硬件性能低于软件”很让人惊讶呢?实际上软件是依附于硬件的,而一般来说,硬件的运行速度远高于软件,可是x86的软硬件虚拟化的技术却和常理完全不同。
- 原因是什么?
- 它没有对MMU虚拟化的支持
- 它无法与用于MMU虚拟化的现有软件技术共存
Introduction
- 传统的软件VMM,用的方法是二进制翻译。就是说VM在有指令发给CPU的时候,直接转换成二进制的代码控制CPU。
- x86架构商提供了硬件扩展,让纯软件虚拟化变成了硬件辅助行虚拟化。
- 文章审视了虚拟指令执行引擎的性能、新兴的硬件支持,确定性能折中点,软件和硬件VMM的定量性能比较。
Classical Virtualization
- Popek and Goldberg’s 1974的论文提供了VMM