QEMU
来自智得网
简介
QEMU(quick emulator)是一种通用的开源计算机仿真器和虚拟器,最早由由Fabrice Bellard编写,QEMU虚拟机是一个纯软件的实现。QEMU共有两种操作模式:
- 全系统仿真:能够在任意支持的架构上为任何机器运行一个完整的操作系统
- 用户模式仿真:能够在任意支持的架构上为另一个Linux/BSD运行程序
,可以在没有KVM模块的情况下独立运行,但是性能比较低。
原理
用户模式
QEMU可以通过动态代码编辑机制来转译不同硬件体系的代码,例如其仿真器可以把ARM平台的指令翻译为x86平台的指令,然后在x86的CPU执行。
系统模式
QEMU有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及I/O设备的虚拟化。QEMU的优点在于其实纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,但是也正因为QEMU是纯软件实现的,因此所有指令都需要QEMU转手,因此会严重的降低性能。而可行的办法是通过配合KVM或者Xen来进行加速。
应用
KVM
QEMU有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及I/O设备的虚拟化。QEMU是一个用户空间的进程,需要通过特定的接口才能调用到KVM模块提供的功能。从QEMU角度来看,虚拟机运行期间,QEMU通过KVM模块提供的系统调用接口进行内核设置,由KVM模块负责将虚拟机置于处理器的特殊模式运行。QEMU使用了KVM模块的虚拟化功能,为自己的虚拟机提供硬件虚拟化加速以提高虚拟机的性能。