了解Qemu和KVM之间的关系


17

KVM和Qemu有什么区别?据我了解,后者能够提供“用户模式仿真”,这意味着一个人可以运行为其他某些架构而构建的单个可执行文件,如下所示:

# file busybox-sparc 
busybox-sparc: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
# qemu-sparc busybox-sparc ls
Packages_arm     Packages_i386    arm              busybox-armv6l   busybox-i686     busybox-powerpc  busybox-sparc    busybox-x86_64   i386
# 

..和“计算机仿真”,这意味着不仅执行了动态二进制转换,而且还仿真了整个虚拟机(视频卡,声卡,网卡,光学设备等)。例如:

# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d

据我了解,Qemu不知道如何利用硬件虚拟化(例如x86架构上的Intel VT-x或AMD-V解决方案),在这种情况下KVM可以提供帮助-可以通过KVM支持来启动Qemu。但是,除了可以访问仿真程序以访问特定硬件体系结构上的硬件辅助虚拟化之外,KVM还提供其他功能吗?是否可以仅使用KVM创建整个(CPU,视频卡,I / O设备等)虚拟机?如果是,那么应该使用哪些程序来创建和控制该虚拟机?


Answers:


16

您部分正确。请小心,因为可能会有些混乱。KVM是Linux内核中虚拟化技术的名称。

KVM还通常用作QEMU项目fork的名称(更准确的名称是qemu-kvm),它对硬件虚拟化有更好的支持。该声明已由QEMU项目确认,但是从QEMU 1.3版开始,qemu-kvm的所有功能都已合并

该下载页面KVM项目解释说,差别也非常的好。

还有一点要记住的是,qemu-kvm的优点已被合并到较新版本的qemu中,因此,我希望有一天两者之间的区别将消失。


那么,KVM“ Linux内核中的虚拟化技术”和qemu-kvm是两个不同的东西吗?
dtmland

@dtmland好吧,是的。qemu-kvm是一个用户级软件,在内核中使用KVM。
chutz

6

KVM是内核模块,它允许通过特定于虚拟化的CPU扩展,以最小的开销直接在主机CPU和RAM中调度VM的CPU请求。QEMU提供了其余的仿真硬件,因为即使是虚拟机也不仅是CPU,而且还包括许多其他硬件。QEMU也可以模拟CPU,但是与KVM的方式相比,它的速度很慢,因此进行合并以获得两全其美的效果

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.