ARM平台上实现Linux内核虚拟机技术研究_第1页
ARM平台上实现Linux内核虚拟机技术研究_第2页
ARM平台上实现Linux内核虚拟机技术研究_第3页
ARM平台上实现Linux内核虚拟机技术研究_第4页
ARM平台上实现Linux内核虚拟机技术研究_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM平台上实现Linux内核虚拟机技术研究 华中科技大学 硕士学位论文 ARM平台上实现Linux内核虚拟机技术研究 姓名:赵亚辉 申请学位级别:硕士 专业:工业工程 指导教师:朱建新 2011-01-16 华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 虚拟机技术可以简化计算机系统管理,提高系统的可移植性、可靠性和安全性,已 经成为计算机技术研究和应用领域的一个重要方向。嵌入式系统向非专用计算平台方向 的发展使它们要面对与普通计算机系统相同的需求,比如系统管理、系统可靠性、软件 平台适应性和安全性等,在嵌入式系统上应用虚拟机技术越来越重要。Linux 内核虚拟 机(KVM )是一种

2、开源的虚拟机技术,它作为Linux 内核的一个模块,具有很强的适应 性和性能,不过它需要处理器架构支持硬件虚拟化功能,而在嵌入式领域应用广泛的 ARM 处理器不支持硬件虚拟化,这就使得 Linux 内核虚拟机无法直接应用在ARM 架构 平台上,目前国内在这个领域缺少相关的研究。 论文研究并分析了 ARM 处理器敏感指令的特点和功能,研究了当前在不支持硬件 虚拟化功能的处理器架构平台上实现虚拟化的一些技术,并对基于 KVM 的轻量级泛虚 拟化技术进行了深入研究,分析了它的处理异常和硬件中断的方式,用陷阱机制可以简 化对敏感指令的处理。基于这些研究,给出了一种在 ARM 架构平台上实现 KVM 虚

3、拟 机的方案,详细设计方案中的虚拟机实现机制,包括:虚拟 CPU 机制、影子页表和共 享页的创建、内存保护机制、向虚拟内存中映射中断响应程序的方式等。论文给出的虚 拟机方案是一种全虚拟化方案,不需要修改客户操作系统内核,可以满足在 ARM 架构 上运行 Linux 内核虚拟机的需求。 关键词:嵌入式系统,ARM 处理器,Linux 内核虚拟机 I 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract Since virtualization technology could ease the management of computer system and increase th

4、e portability, the reliability and the security of the system, it has become to be an important research area of computer technology and application. Embedded system is becoming to be an amateurish computing system. Then, the same to general compter system, embedded system should also face to the re

5、quirements, such as the system management, the reliability, the adaptability of the software, the security and so on. So its significative for embedded system to invoke virtualization technology. Linux kernel virtual machine KVM is an open source virtualization technology. Since KVM works as a modle

6、 of Linux Kernel, it has strong adaptability and performance. KVM requires that processor architecture supports hardware virtualization. However, ARM architecture which is applied much abroad in embedded system market doesnt support hardware virtualization, and KVM cant run on the embedded system ba

7、sed on ARM architecture directnessly, and there is no related domestic research at present. The paper has researched and analysed the specialties and functions of ARM processors sensitivity instructions, and given a research on the technology of system virtualization for the processor which doesnt s

8、upport hardware virtualization. The paper gives a thorough research on lightweight paravirtualization based on KVM, and analyses its manners of disposing traps and hardware interrupts. Replacing sensiticity instruction with trap could ease the virtualization. Based on the above research, the paper g

9、ives a design of virtualization on ARM architecture using KVM, and actualizes the mechanisms of the virtual machine particularly, including of CPU virtualization, memory protection mechanism, the mechanism of shadow page table and shared page and the manner of mapping interrupt handlers to virtual m

10、emory and so on. The virtualization scheme given in the paper is a full virtualization technology which doesnt require that the guest operating systems kernel should be amended, and could meet the need that running virtual machines on ARM architecture using KVM monitor. Key words: Embedded system, A

11、RM processor, Linux kernel virtual machine II 华 中 科 技 大 学 硕 士 学 位 论 文 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已 经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确 方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留 并向国家有关部门或机构送交论

12、文的复印件和电子版,允许论文被查阅和借阅。本人授 权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。 本论文属于 不保密。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 2 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪论 1.1 虚拟机技术概论 虚拟机技术是指在传统的计算机系统的硬件系统和软件系统之间加入一个虚拟中 间层,这个虚拟中间层可以为应用程序或者一个操作系统提供独立稳定的运行环境,屏 蔽了硬件平台的异构性、动态

13、性和分布性等细节特征,可以使硬件资源在不同操作系统 或不同用户下进行复用和共享,并为每个用户提供隔离独立的计算环境,同时也使系统 管理员能够集中地管理计算机硬件和软件资源。虚拟机是在真实的计算机之上的一个软 1 件实现,该实现能够支持被虚拟的机器的体系结构 。 虚拟机技术产生于 20 世纪 60 年代,当时的计算机硬件技术发展水平低下而且硬件 资源比较稀缺和珍贵,为了提高对计算资源的利用率,虚拟机技术得到了广泛的使用和 研究。但是到了 20 世纪 80 年代,随着计算机硬件成本的下降和支持多用户与多任务的 操作系统的产生,虚拟机技术之前的优势越来越不明显,这段时间虚拟机的发展就基本 停滞了。然

14、而到了 21 世纪,随着计算机硬件的性能越来越强大,如何能够提高计算机 硬件与软件系统的利用率,降低计算机系统的管理成本,怎样提高计算机系统的安全性 和可移植性等问题的研究,使得虚拟机技术再次成为计算机技术的一个重要研究领域。 虚拟机监控器(VMM )运行在处理器的特权级,负责管理位于上层的虚拟机(VM ) 的创建和运行,为虚拟机提供一个独立安全的运行环境,虚拟机监控器为虚拟机模拟出 一套与主机硬件平台无关的硬件系统,包括 CPU、主存储器、以太网卡等。按照虚拟机 监控器在系统中所处的位置可以将它分为三种实现模式2 : 1 独立监控模式。VMM 运行在没有任何软件系统的计算机硬件平台上,可以直

15、 接管理和使用计算机的底层硬件资源,具有最高的特权级别,向上为运行在 VM 中的客 户操作系统提供抽象的底层硬件接口。VMM 能够截获客户操作系统对系统硬件资源的 访问,拥有底层硬件驱动。 2 主机模式。在这种模式下,VMM 是作为一个应用层序运行在主机操作系统之 中,VMM 利用主机操作系统提供的设备驱动服务来完成虚拟机的内存管理、进程调度 等功能,这种模式的系统性能开销较大。 3 混合模式。这种模式结合了以上两种模式的优点,使 VMM 直接运行在计算机 硬件平台上,并拥有最高的特权级别。不过 VMM 本身被设计成轻量级的,只负责向客 1 华 中 科 技 大 学 硕 士 学 位 论 文 户操

16、作系统提供一部分系统服务(虚拟 CPU 和虚拟内存管理),它把 I/O 设备的模拟交 给一个拥有特权的虚拟机。这种模式的 VMM 也不包括设备驱动程序。 独立监控模式的虚拟机系统结构 独主机模式的虚拟机系统结构 混合模式的虚拟机系统结构 客户应用 客户应用 客户应用 客户应用 客户应用 客户应用 客户应用 客户应用 程序 程序 程序 程序 程序 程序 管理工具 程序 程序 客户操作 客户操作 客户操作 客户操作 客户操作 客户操作 系统 系统 系统 客户操作 客户操作 客户操作 系统 系统 系统 系统 系统 系统 . 虚拟机-1 虚拟机-2 虚拟机-n . . 虚拟机-1 虚拟机-2 虚拟机-

17、n . 虚拟机-1 虚拟机-2 虚拟机-n . 虚拟机监视器(VMM) . 虚拟机监视器(VMM) 虚拟机监视器(VMM) 宿主操作系统 计算机硬件 计算机硬件 计算机硬件 图 1.1 三种虚拟机系统结构模式示意图 根据虚拟化的实现所位于的计算机系统抽闲层次的不同,可将虚拟机系统分为三种 3 : 1 硬件级虚拟机(HAL )。这种虚拟机实现方案支持在一台计算机系统上同时存在 4 多个运行环境,每个运行环境可以支持一个客户操作系统 。硬件级虚拟机必须能够对 处理器架构平台中的一些特权指令(比如修改页表等操作)进行处理,执行这些指令时 需要产生陷阱并将它传递给下层的虚拟机监控器来处理。虚拟机和主机

18、操作系统可以共 享底层的物理硬件资源,在主机操作系统上通过虚拟机监控器展现给客户操作系统多个 独立且相互隔离的虚拟计算机硬件平台。硬件级虚拟机具有高度的隔离性,它实现了虚 拟机之间和底层物理硬件之间有效的隔离,并且它创建的虚拟机在用户角度看与普通的 计算机没有差别,易于用户接受和操作,而且这种虚拟机可以支持不同形式的客户操作 系统。硬件级虚拟机成熟的产品有 VMWare 、Xen 、Microsoft Virtual PC 等。 2 操作系统级虚拟机。操作系统级虚拟机也称为虚拟私人服务器或虚拟环境,可 以提供执行用户程序的功能。操作系统级虚拟化的方式是:在操作系统之上的虚拟层根 据每个虚拟机的

19、要求为其创建一个运行在物理计算机之上的操作系统副本,以这种方式 为每个虚拟机创建一个完整的客户操作系统,并且实现虚拟机与物理机器的隔离。操作 系统级虚拟机系统中的所有虚拟机共享同一个操作系统内核,增加或者减少虚拟机的数 量时都不需要重新启动这个内核,因而操作系统级虚拟机的系统开销很小,能够很大限 度地利用服务器资源,一台个人计算机能够支持上百个数量级的操作系统级虚拟机同时 2 华 中 科 技 大 学 硕 士 学 位 论 文 运行,不过操作系统级虚拟机只支持相同类型的客户操作系统。操作系统级虚拟机产品 有 Virtuozzo 、Feather-weight Virtual Machine (FV

20、M )等。 3 操作系统 API 级虚拟机。操作系统 API 级虚拟机为用户提供了一个虚拟的应用 程序二进制接口环境,它能够使应用程序与操作系统平台相对独立。它通过为不同的操 作系统平台开发对应的操作系统 API 级虚拟机版本,可以使任何基于该虚拟机的应用程 序都能够在支持该 API 级虚拟机的操作系统上运行,这就大大提高了应用程序的可移植 性,应用程序在虚拟机上的运行可以采用解释或即时编译的方式。著名的 JAVA 虚拟机 就是操作系统 API 级虚拟机的代表。 根据是否需要修改客户操作系统内核以及是否需要底层硬件架构的协助可以将虚 拟化技术分为全虚拟化、泛虚拟化和硬件虚拟化三种。在全虚拟化中

21、,虚拟机监控器需 要向虚拟机模拟与真实底层物理硬件完全相同的虚拟硬件环境,包括虚拟 BIOS 、虚拟 I/O 设备等,虚拟机监控器通过软件仿真的方式代替不支持虚拟化的处理器指令,以保 证客户操作系统能够正确地运行,这种方式不需要对客户操作系统内核进行修改。泛虚 拟化技术需要对客户操作系统在虚拟机中不能正确执行的指令进行修改,这种技术可以 提高客户操作系统的执行效率,但是需要开发者能够修改客户操作系统内核,这对于非 开源的操作系统是非常难以实现的。而硬件虚拟化技术需要底层硬件架构的协助来完成 对虚拟资源的访问,现在 X86 体系结构的 VT-x 技术和 AMD 处理器架构的 SVM 技术 都支持

22、硬件虚拟化技术5 。 1.2 课题研究背景 现在,随着嵌入式系统逐渐向非专用的系统发展,尤其是 3G 通讯技术和智能手机 的出现和快速发展,使得手机的功能越来越强大接入互联网的速度和频率越来越高,以 至于它们现在更多地被当作一个小型计算机系统来使用而不只是一个简单的电话,这也 使得智能手机要面对与个人计算机环境相同的由恶意软件引起的系统与信息安全问题, 而智能手机现在越来越成为私人数据的集合,由手机终端的丢失导致隐私数据的外泄而 对个人甚至团体机构带来的损失越来越大6 。随着桌面虚拟化技术凭借其在系统管理、 可移植性和系统安全方面的良好特性,逐渐发展成为计算机技术研究和应用的一个重要 方向,虚

23、拟化技术在嵌入式系统尤其是智能手机系统领域的应用也显得比较重要。 由于操作系统被恶意软件攻击受到损害后,操作系统级的系统与信息安全解决方案 也会受到损害7 。而虚拟机技术可以使系统的安全方案在VMM 级,并且虚拟化技术为 3 华 中 科 技 大 学 硕 士 学 位 论 文 运行在虚拟机监控器上的客户操作系统提供了有效的隔离机制,任何受到恶意攻击的客 户操作系统不会影响到其它客户操作系统和运行在其它客户操作系统上的系统安全机 制,这就大大提高了智能手机的安全性与可靠性。 智能手机系统除了应当提供传统的基于实时操作系统的电话语音服务功能外,还应 支持像普通计算机那样的可以让用户在需要的时候安装手机

24、应用程序,这些应用程序可 以是从 3G 网络上下载的,也可以是用户自行编写的。为了使智能手机应用程序开发人 员很容易地编写应用程序,就需要智能手机操作系统能够像计算机操作系统一样提供应 用系统的 API ,因此应用操作系统对智能手机是很重要的。不过在另一个方面,应用操 作系统不能够很好地支持实时性功能,也不能支持实时操作系统建立的保留协议栈,那 么,如果将实时操作系统作为手机的主要的操作系统,那么系统就不能支持手机应用程 序的开发性,无法发挥作为智能手机的功能。在手机设备上引入虚拟化技术就可以解决 这个矛盾,可以在手机系统建立虚拟机监控器,使两种操作系统同时运行在这个虚拟化 的系统管理平台上。

25、在这种方法中,只需要简单地将虚拟机镜像拷贝到手机即可实现与 手机系统管理有关的任务例如系统备份和更新。 1.3 嵌入式系统平台虚拟化技术研究现状 虚拟化需要有功能强大的硬件为基础,因为虚拟化时创建的虚拟硬件层会增加软件 系统的运行开销。嵌入式系统是一种硬件功能相对弱小的硬件平台,不过,现在国内外 一些公司和机构对嵌入式系统虚拟化的研究也出现了不少成果和产品。2009 年 VMware 公司推了移动虚拟化平台(VMware MVP ),这个平台起初可以支持在诺基亚 N810 Tablet 上同时运行 Windows Mobile 和谷歌 Andriod 两种智能手机操作系统,这就使得用户可以 凭

26、借一部手机分开处理工作和家庭事务,现在它可以支持各种实时操作系统和富操作系 统,包括 Windows CE5.0 和 6.0、Linux2.6 、Symbian 9、eCos、uITRON NORTi 以及uC/OS-II 等,它装载在手机中的精简软件层中,用于将应用程序和数据与底层硬件隔离,而且 Vmware MVP 平台支持手机迁移技术,这个技术有助于实现遗失了手机的用户找回手机 上的用户数据,还针对手机的低能耗和内存受限等特征进行了优化,可以在手机上高效 地运行,不过它不适于在手机上运行规模比较大的程序8 。同样在2009 年,另外一家著 名公司思杰公司推出了另外一款手机虚拟化方案 Ci

27、trix Receiver,它是一个桌面虚拟化 方案,这个虚拟化平台可以使在装有 Linux 系统的手机上运行 Windows 平台上的 Office 等程序,这种全新的轻量级软件客户端可以使任何设备很容易地访问运行在远端数据中 4 华 中 科 技 大 学 硕 士 学 位 论 文 9 心中的虚拟桌面和应用程序,这种方案把云计算技术引入到了智能手机虚拟化技术中 。 此外,摩托罗拉公司也推出了 Evoke QA4 虚拟化方案,这个方案采用了 Open Kernel Labs (开放内核实验室)的OKL4 微内核产品实现虚拟化。Open Kernel Labs 也发布了几款 智能手机平台的泛虚拟化产

28、品,这些产品拥有 OK Labs 的安全超单元(Secure HyperCell Architecture )架构,主要支持 Linux 、Android 、Symbian、Window Mobile 等手机操作 系统10 。 随着ARM 处理器的在嵌入式系统中所占的份额越来越大和性能的不断提升,ARM 架构也开始向虚拟化方向发展。现在已经出现了多种商业的 ARM 架构系统虚拟化方案, 其中有 VirtualLogix 推出的为 ARM 架构设计的 VLX 技术,可以在现有的手机中虚拟出 一个新的开源操作系统,Green Hills 提出的 INTEGRITY 安全虚拟化方案。这些虚拟化 方案

29、都是非开源的,而且需要泛虚拟化技术的支持。 三星公司的 Xen On ARM 是一个针对 ARM 架构虚拟化的开源解决方案。Xen 采用 泛虚拟化技术,需要访问访问和修改客户操作系统的源代码,Xen On ARM 需要手动修 改大约 4500 行的客户操作系统内核代码,并且还得根据每个源码的版本变化做出相应 的维护工作,这些都大大加大了Xen On ARM 的应用代价11 。国内目前还没有在ARM 架构上实现 KVM 虚拟机的相关方案。 1.4 课题来源 本课题来源为武汉天喻信息股份有限公司研发部的手机虚拟机研究项目。本项目综 合了 ARM 芯片的智能存储卡技术和 KVM 虚拟机技术,构建具有

30、自主知识产权的基于 ARM 处理器的嵌入式设备的虚拟机监控器(VMM )。本文对在 ARM 处理器架构平台 上实现 KVM 虚拟机方案进行了详细的研究和设计。 1.5 本文的主要工作和组织结构 本文对武汉天喻信息股份有限公司开发的基于 KVM 的轻量级泛虚拟化技术进行了 研究,研究了在 ARM 处理器架构平台上实现基于 KVM 的虚拟化方案的技术需求,分 析了在KVM 中创建虚拟CPU 和客户系统与VMM 处理软件中断和外部虚拟设备中断的 方式与过程,并给出了一种在 ARM 架构平台上实现 KVM 虚拟机的方案,详细设计方 案中的虚拟机实现机制。本文的组织结构是: 5 华 中 科 技 大 学

31、硕 士 学 位 论 文 第一章绪论,介绍了虚拟机技术的发展,在嵌入式系统中引入虚拟机技术的必要性, 嵌入式系统平台虚拟机技术的研究现状,课题的来源以及本文的组织结构。 第二章介绍了 KVM 虚拟机的发展与基本架构、ARM 处理器的特点、运行模式以 及目前在嵌入式领域广泛应用的 ARM9 系列处理的功能特点,并分析了在 ARM 处理器 架构平台上实现虚拟化的技术。 第三章分析了 ARM 处理器不适宜虚拟化的敏感指令,并研究了基于 KVM 的轻量 级泛虚拟化技术的方案。 第四章给出一种在 ARM 架构平台上实现 KVM 虚拟机的方案,详细设计了系统中 QEMU 与 KVM 的同步性方案、CPU 虚

32、拟化方案以及内存虚拟化方案。 第五章是对本文工作的总结,并对下一步的研究方向进行了展望。 6 华 中 科 技 大 学 硕 士 学 位 论 文 2 KVM 虚拟机与 ARM 架构虚拟化技术研究 2.1 KVM 虚拟机技术研究 12 KVM (Kernel-based Virtual Machine )是一种基于Linux 内核的虚拟机 ,它是一 种全新的开源的虚拟机技术。提出 KVM 的目的是为了在之前的虚拟机技术的基础上充 分利用现在的硬件虚拟化技术创建出一个新式的虚拟机管理程序。 KVM 的出现和发展 13 KVM 是一个可加载的 Linux 内核模块,它和Linux 内核共同组成虚拟机监控

33、器 。 KVM 引入的三个主要设计机制使它成为一个高效稳定的虚拟机管理程序并超越了其它 的开源虚拟机管理程序方案。 首先, KVM 管理程序要求 CPU 支持硬件虚拟化技术,比如:VT-X 和 AMD-V 技 术,并把这些功能利用到了虚拟化 CPU 的实现上14 。通过要求硬件对虚拟化技术的支 持而不是尽量的通过软件去优化它,KVM 能够设计出一个尽可能优化的虚拟机管理程 序的解决方案,并且不需要为了支持具体的硬件细节而添加相关的代码或者修改客户操 作系统。 其次,KVM 充分利用了 Linux 内核提供的功能。为了使自己有能力虚拟化CPU 和 内存,一个虚拟机管理程序需要包含许多功能模块,例

34、如,内存管理、进程调度、I/O 堆栈、设备驱动程序、安全控制模块、网络堆栈等等。事实上一个虚拟机监控程序就是 一个专门的操作系统,与传统的操作系统不同的只是它上面运行的是虚拟机而不是用户 程序15 。 由于Linux 内核能够提供一个虚拟机监控程序所需要的核心功能,并且经过超过多 年的发展,Linux 已经发展成为一个稳定成熟的操作系统平台,这些都使得直接使用 Linux 内核的相关功能建造出的虚拟机监控程序比重新写出一个虚拟机管理程序的要求 功能模块要有效得多。在这种情况下,KVM 又从 Xen 虚拟机技术那里得到了一些启发。 Xen 架构的一个重要技术难点是使系统架构的 domain0 和

35、 Xen 管理程序相互独立16 。由 于 Xen 管理程序用堆栈提供平台的核心功能,它需要重新模拟这些功能,例如进程调度 和内存管理。例如,由于 Linux 内核拥有一个成熟的支持NUMA 和大规模系统的内存 7 华 中 科 技 大 学 硕 士 学 位 论 文 管理功能模块,Xen 虚拟机管理程序需要通过模拟的方式来创建这些功能,同样的,像 电源管理这些在Linux 内核中已经非常成熟的功能也许要在Xen 中被重新仿真。 KVM 研究小组提出的另外一个重要决定是把 KVM 作为一个内核模块加入到Linux 内核的发行版本中。在 2006 年 12 月份 KVM 代码使自己为 Linux 内核共

36、享并在 2007 年 1 月加入到 Linux 版本内核中17-18,从此 KVM 成为了 Linux 的一个核心部分 并能够从 Linux 内核中继承一些重要的功能,而且KVM 可以被各种领先的软件发行商 支持,包括 RED Hat 、AMD 、惠普、IBM 、Novell 、西门子、SGI 等等。 KVM 虚拟机基本架构 在 KVM 架构中,虚拟机是作为一个普通的 Linux 进程来执行的,一个客户操作系 统拥有它自己的存储空间,并独立于创建它的用户空间的进程的地址空间,它可以被标 准 Linux 进程调度函数进行调度,不过虚拟 CPU 不是通过它自身进行调度的19,事实 上每个虚拟 CP

37、U 都是作为普通 Linux 进程的形式出现的。这允许 KVM 可以利用 Linux 内核提供的所有功能。在 KVM 中,通过打开设备节点“/dev/kvm ”就可以创建一个虚 拟机。 .1 KVM 虚拟机系统结构 20 KVM 中包含了一个经过修改的 QEMU,通过这个 QEMU 来对设备进行模拟 , 它可以提供模拟的 BIOS 、PCI 总线、USB 总线和一系列标准的设备,例如 IDE 和 SCSI 硬盘控制器、网卡等。如图 2.1 所示 客 用户模式 户 模 式 内核模式 QEMU Linux libKVM libKVM 用户 ioctl libKVM ioctl ioctl 模式 K

38、VM fd KVM-VM fd KVM-VCPU fd (/dev/kvm) Linux 内核 Linux内核、KVM Driver 模式 图2.1 KVM 虚拟机结构示意图 8 华 中 科 技 大 学 硕 士 学 位 论 文 从图 2.1 可以看出 KVM 由两部分组成:KVM Driver 和 QEMU 。其中KVM Driver 是 Linux 内核的一个模块,它是作为Linux 中的一个标准字符设备存在着并且可以继承 Linux 内核的相关服务,用于创建虚拟机、分配虚拟机内存、创建虚拟 CPU 等。KVM Driver 使 Linux 内核扩展成为一个虚拟机管理程序,并在执行模式中增加

39、了一个拥有独 立于内核模式和用户模式的客户模式,并在该模式下运行创建出来的虚拟机21 。 .2 设备节点 KVM 被构造成一个具有 Linux 特征的设备,它作为一个能够被用户空间创建的并 能通过一系列 ioctl 函数的调用运行虚拟机的设备节点“/dev/kvm ”实现的22 。 “/dev/kvm ”提供的操作有如下几种: 1 创建一个新的虚拟机 2 为虚拟机分配内存空间 3 对虚拟 CPU 寄存器进行读和写操作 4 向虚拟CPU 发送中断 5 运行虚拟 CPU 客户系统地址 用户地址空间 空间 客户系统内 存映射到用 户进程 主机系统内核 分配给客户 系统的地址 空间 图2.2 KVM 的内存映射机制框架示意图 图 2.2 描述了客户操作系统的内存空间的分配方式。与 Linux 中的用户模式的内存 空间相似,操作系统内核把不连续的内存组织起来分配给客户系统地址空间。另外,用 9 华 中 科 技 大 学 硕 士 学 位 论 文 户空间能够调用 mmap 函数映射客户系统内存以直接获取地址空间。这种操作对于仿 真带有 DMA 功能的设备很有用22 。 运行一个虚拟 CPU 需要考虑到更多的细节因素。为了能够有效地解决虚拟化 CPU 的问题,KVM 在 Linux 系统中加入一个不同于已经存在的内核模式和用户模式的新执 行模式客

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论