写点什么

Qemu-KVM 基本工作原理介绍

  • 2024-11-25
    北京
  • 本文字数:680 字

    阅读完需:约 2 分钟

本文分享自天翼云开发者社区《Qemu-KVM基本工作原理介绍》,作者:郑****文


1.KVM 与 Qemu 关系

Qemu 本身并不是 KVM 的一部分,而是一整套完整的虚拟化解决方案,它是纯软件实现的,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟,所以性能相对比较低。

广义上的 KVM 包含两部分,一部分是基于 LINUX 内核支持的 KVM 内核模块,另一部分就是经过简化和修改 Qemu。

KVM 内核模块负责模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台。


2.KVM 运行时的三种模式

在虚拟机运行时,有三种模式,分别是:

客户模式:我们可以简单理解成客户机操作系统运行在的模式,它本身又分为自己的内核模式和用户模式。

用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O,Qemu 运行在这个模式之下。

内核模式:模拟 CPU 以及内存,实现客户模式的切换,处理从客户模式的退出。KVM 内核模块运行在这个模式下。

三种模式的层次关系简单描述如下图:



3.KVM 工作原理

KVM 的大致工作原理:用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。KVMDriver 为虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAUNCH 指令进入客户模式,装载 Guest OS 并运行。Guest OS 运行过程中如果发生中断或者影子缺页等异常,将暂停 Guest OS 的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要 I/O 则处理完成后重新进入客户模式,如果需要 I/O 则进入到用户模式,由 Qemu 来处理 I/O,处理完成后进入内核模式,再进入客户模式。

KVM 的工作原理如图:



用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
Qemu-KVM基本工作原理介绍_qemu_天翼云开发者社区_InfoQ写作社区