qemu 和 kvm 的关系

qemu 和 kvm 的关系, 使用 qemu 创建的虚拟机是否是直接使用 kvm?

QEMU和KVM之间的关系可以简单描述如下:

  1. QEMU:这是一个开源的虚拟机仿真器,可以模拟多种硬件平台。它负责设备仿真和虚拟机的运行管理。
  2. KVM (Kernel-based Virtual Machine) :这是Linux内核的一个模块,主要用于提供虚拟化支持。KVM将Linux内核转变为一个hypervisor,使得Linux可以直接执行虚拟机的指令。

在使用 QEMU 创建的虚拟机中,如果启用了 KVM ,QEMU 会利用 KVM 来加速虚拟机的性能。具体来说,运行qemu-system-x86_64时,如果主机的 CPU 支持虚拟化(如 Intel 的 VT-x 或 AMD 的 AMD-V),并且 KVM 模块已加载,那么 QEMU 将会直接调用 KVM 来提高虚拟机的效率。

grep flag /proc/cpuinfo | uniq | grep -E "vmx|svm"

  • AMD 有支持 AMD-V技术的 cpu 应该会看到一个 svm 的 flag

  • Intel 的 VT-x 是 vmx

  • 其他例如 ARM, PowerPC 可参考:

bash 复制代码
▶ lsmod | grep kvm                                   
kvm_intel             380928  0
kvm                  1146880  1 kvm_intel
irqbypass              16384  1 kvm

总结

  • QEMU 是一个仿真器,可以独立运行,但通常与KVM结合使用以提高性能。
  • 使用 QEMU 创建的虚拟机 可以利用 KVM,如果条件允许的话,这样就能实现高效的虚拟化。
相关推荐
程序员爱钓鱼10 分钟前
Go语言实战案例- 命令行参数解析器
后端·google·go
心在飞扬26 分钟前
Redis 介绍与 Node.js 使用教程
后端
milanyangbo1 小时前
“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
分布式·后端·云原生·架构
AAA修煤气灶刘哥1 小时前
MySQL 查文本查哭了?来唠唠 ES 这货:从 “啥是 ES” 到 Java 撸代码,一篇整明白!
java·后端·elasticsearch
金銀銅鐵1 小时前
[Java] 浅析密封类(Sealed Classes) 在 class 文件中是如何实现的
java·后端
007php0071 小时前
Go语言面试:传值与传引用的区别及选择指南
java·开发语言·后端·算法·面试·golang·xcode
唐叔在学习1 小时前
从MD5到RSA,一文读懂常见的加密算法
后端
javadaydayup1 小时前
为什么 MyBatis Mapper 接口能像普通 Bean 一样被 @Autowired?
后端·mybatis
考虑考虑3 小时前
Redis8中的布谷鸟过滤器
redis·后端·程序员