kvm原理

虚拟监控器VMM主要职能:管理真实的物理硬件平台,并为每个虚拟客户机提供对应的虚拟硬件平台

 

kvm架构

虚拟机分为2种:

1.虚拟机监控程序运行在底层的软件层,从某种意义上说是一个特别为虚拟机而优化裁剪的操作系统内核,实现系统的初始化,物理资源的管理等操作系统的职能;它对虚拟机的创建,调度和管理,与操作系统对进程的创建,调度和管理有共通之处 例如xen esx/esxihyper-v

 

2.虚拟机监控器不必自己实现物理资源的管理和调度算法  kvm是一个基于宿主操作系统的虚拟机

 

kvm本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O设备,并将它的视频映射回宿主机的显示屏。

 

kvm模块是kvm虚拟机的核心部分。主要功能是初始化cpu硬件,打开虚拟化模式,然后将虚拟化客户机运行在虚拟机模式下。kvm只支持硬件虚拟化。

 

kvmIntel公司的CPU上运行为例:加载内核-------》初始化内部数据结构-----------》检测系统cpu,打开cpu控制寄存器CR4中的虚拟化模式开关,并通过VMxon指令将宿主操作系统置于虚拟化模式中的根模式。---------------》创建特殊设备文件/dev/kvm 并等待来自用户空间的命令。-----------------》虚拟机的创建和运行由用户空间的qemukvm模块相互配合操作

 

 

内存虚拟化也是kvm模块实现的

处理器中的内存管理单元(MMU)是通过页表的形式将程序运行的虚拟地址转换成物理内存地址

虚拟机模式下,内存管理单元的页表则必须在一次查询的时候实现2次地址转换,这是因为除了客户机程序的虚拟地址转换成客户机物理地址以外,还必须将客户机物理地址转换成真实的物理地址。kvm使用影子页表来解决这个问题,在客户机运行时处理器真正使用的页表并不是客户操作系统维护的页表,而是KVM模块根据这个页表维护的另外一套影子页表


你可能感兴趣的:(虚拟机,kvm,寄存器)