网站大量收购闲置独家精品文档,联系QQ:2885784924

KVM虚拟化源代码详解.pdf

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
KVM 虚拟机源代码分析 1, KVM结构及工作原理 1.1 KVM结构 KVM基本结构有两部分组成。一个是 KVM Driver ,已经成为 Linux 内核的一个模块。 负责虚拟机的创建, 虚拟内存的分配, 虚拟 CPU寄存器的读写以及虚拟 CPU的运行等。 另外 一个是稍微修改过的 Qemu,用于模拟 PC硬件的用户空间组件,提供 I/O 设备模型以及访问 外设的途径。 用户模式 客户模式 内核模式 Qemu LibKvm Linux 用户 ioctl 模式 KVM fd /dev/kvm Kvm-vm fd Kvm-vcpu fd Linux 内核 VMM(Linux 内核+ KVM Driver) 模式 图 1 KVM 基本结构 KVM基本结构如图 1 所示。其中 KVM加入到标准的 Linux 内核中,被组织成 Linux 中标准的 字符设备 (/dev/kvm) 。Qemu通 KVM提供的 LibKvm 应用程序接口,通过 ioctl 系统调用创建 和运行虚拟机。 KVM Driver 使得整个 Linux 成为一个虚拟机监控器。并且在原有的 Linux 两种执行模式 ( 内核模式和用户模式 ) 的基础上, 新增加了客户模式, 客户模式拥有自己的内 核模式和用户模式。在虚拟机运行下,三种模式的分工如下: 客户模式:执行非 I/O 的客户代码。虚拟机运行在客户模式下。 内核模式:实现到客户模式的切换。处理因为 I/O 或者其它指令引起的从客户模式的退出。 KVM Driver 工作在这种模式下。 用户模式:代表客户执行 I/O 指令 Qemu运行在这种模式下。 在 KVM模型中,每一个 Guest OS 都作为一个标准的 Linux 进程,可以使用 Linux 的进程管 理指令管理。 在图 1 中./dev/kvm 在内核中创建的标准字符设备, 通过 ioctl 系统调用来访问内核虚 拟机,进行虚拟机的创建和初始化; kvm_vmfd 是创建的指向特定虚拟机实例的文件描述符, 通过这个文件描述符对特定虚拟机进行访问控制; kvm_vcpu fd 指向为虚拟机创建的虚拟处 理器的文件描述符,通过该描述符使用 ioctl 系统调用设置和调度虚拟处理器的运行。 1.2 KVM工作原理 KVM的基本工作原理: 用户模式的 Qemu利用接口 libkvm 通过 ioctl 系统调用进入内核 模式。 KVM Driver 为虚拟机创建虚拟内存和虚拟 CPU后执行 VMLAUCH指令进入客户模式。 装载 Guest OS执行。如果 Guest OS发生外部中断或者影子页表缺页之类的事件, 暂停 Guest OS 的执行,退出客户模式进行一些必要的处理。然后重新进入客户模式,执行客户代码。 如果发生 I/O 事件或者信号队列中有信号到达,就会进入用户模式处理。 KVM采用全

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档