文章标题

来源:互联网 发布:python写一个整点提醒 编辑:程序博客网 时间:2024/06/14 05:39

虚拟机监视器(Virtual Machine Monitor,VMM)是虚拟机技术的核心,它是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机。

VMM 运行在特权模式,主要作用是隔离并且管理上层运行的多个虚拟机,仲裁它们对底层硬件的访问,并为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,I/O 设备)。VMM 采用某种调度算法在各个虚拟机之间共享 CPU,如采用时间片轮转调度算法。[1]

虚拟化 就是通过某种方式隐藏底层物理硬件的过程,从而让多个操作系统可以透明地使用和共享它。这种架构的另一个更常见的名称是平台虚拟化。在典型的分层架构中,提供平台虚拟化的层称为 hypervisor (有时称为虚拟机管理程序 或 VMM)
hypervisor 是提供底层机器虚拟化的软件层(在某些情况下需要处理器支持)

架构

架构是分层的:

提供平台虚拟化的层称为 hypervisor (有时称为虚拟机管理程序 或 VMM)
平台虚拟化的层:就是通过某种方式隐藏底层物理硬件的过程,从而让多个操作系统可以透明地使用和共享它。

进程:操作系统将对机器的底层资源的访问虚拟化为进程。
hypervisor 也做一样的事情,但其对象不是进程,而是整个来宾操作系统
hypervisor将对机器的底层资源的访问虚拟化为操作系统 ??

hypervisor 分类

  1. hypervisor 是直接运行在物理硬件之上
    例子:基于内核的虚拟机(KVM —— 它本身是一个基于操作系统的 hypervisor)
  2. hypervisor 运行在另一个操作系统(运行在物理硬件之上)中
    例子: hypervisor 包括 QEMU 和 WINE

hypervisor 的构成

是一个抽象机器硬件的分层应用程序,
每个来宾操作系统看到的仅是一个 VM 而不是真实的硬件机器。
hypervisor 的内部组成,以及它在 VM(来宾操作系统)上的表示。

  1. 需要驱动的内核映像
  2. 配置(比如 IP 地址和所需的内存量)
  3. 磁盘盒一个网络设备。磁盘和网络设备通常映射到机器的物理磁盘和网络设备
  4. 使用一组来宾操作系统工具启动和管理来宾操作系统。

hypervisor 架构关键功能

使来宾操作系统可以和宿主操作系统同时运行

特定的要素

系统调用:将用户空间应用程序和内核函数连接起来的系统调用
虚拟化调用层(hapercall,hypervisor 对操作系统进行的系统调用):允许来宾系统向宿主操作系统发出请求
standard linux Kernel:在内核中虚拟化 I/O,或通过来宾操作系统的代码支持它
hypervisor :
1. 故障必须由 hypervisor 亲自处理
2. hypervisor 还必须处理在来宾操作系统内部发生的异常。
页映射器:hypervisor 的核心要素之一,将硬件指向特定操作系统(来宾或 hypervisor)的页
高级别的调度器:hypervisor和来宾操作系统之间传输控制。

KVM

首个被集成到 Linux 内核的 hypervisor 解决方案,并且实现了完整的虚拟化
运行在 x86 硬件硬件上的、驻留在内核中de虚拟化基础结构
KVM 是作为内核模块实现
Linux 只要加载该模块就会成为一个hypervisor
KVM 为支持 hypervisor 指令的硬件平台提供完整的虚拟化
KVM 还支持准虚拟化来宾操作系统,包括 Linux 和 Windows®。

KVM技术的实现:


1. 可加载的 KVM 模块
Linux 内核安装该模块之后,它就可以管理虚拟化硬件
通过 /proc 文件系统公开其功能
2. 用于 PC 平台模拟修改版 QEMU 提供的。QEMU 作为用户空间进程执行,并且在来宾操作系统请求方面与内核协调

  1. 新的操作系统在 KVM 上启动,os成为宿主操作系统的一个进程,像其他进程一样调度它。
    来宾操作系统被 hypervisor 标识为处于 “来宾” 模式(独立于内核和用户模式)。
  2. 来宾操作系统拥有自己的虚拟地址空间,通过 /dev/kvm 设备映射的
    ,该空间映射到主机内核的物理地址空间
  3. KVM 使用底层硬件的虚拟化支持来提供完整的(原生)虚拟化。
  4. I/O 请求通过主机内核映射到在主机上(hypervisor)执行的 QEMU 进程。
  5. QEMU 作为用户空间进程执行,并且在来宾操作系统请求方面与内核协调
  6. KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统

https://www.ibm.com/developerworks/cn/linux/l-hypervisor/#artrelatedtopics