对KVM、qemu、qemu-kvm的理解

最近研究虚拟化,对kvm、qemu、qemu-kvm有点迷惑,搞不明白他们之间的关系,于是查了下资料,用自己的理解总结了一下:


硬件虚拟化

所谓硬件虚拟化就是cpu本身提供的虚拟化功能,提供可以让虚拟机中的部分指令能直接在真实cpu中执行等类似的优化特性,如Intel VT、AMD-V


KVM

KVM是一个实现硬件虚拟化的 内核模块,目前作为原生内核模块继承到linux内核中。硬件提供的功能需要驱动或者内核模块去使用它,KVM就是这样的一个内核模块。


qemu

qemu是一个虚拟化软件,它是一个完整的仿真器,可以独立的运行,他的特点是可以虚拟不同的CPU,是一个用户态的程序。跟kvm不同的是它不支持硬件虚拟化。


qemu-kvm

qemu-kvm是kvm内核模块结合qemu仿真的虚拟化软件,它修改了qumu的代码,使其具备了kvm硬件虚拟化的特效,又有了qemu的用户态程序。说白了就是kvm提供的内核功能让用户态的qemu使用,kvm使qemu的性能大幅度提高。


总结

kvm作为一个使用了实现了硬件虚拟化(需要硬件支持)的内核模块,他不能独立执行,需要一个用户态程序来使用它,于是它选择了qemu这个比较成熟的用户态仿真程序,对其cpu仿真部分进行了修改,这样就出现了qemu-kvm,qemu-kvm其实就是实现了硬件虚拟化qemu。


描述可能不太准确,有待修改。。

你可能感兴趣的:(虚拟化)