Kernel-based Virtual Machine (2)

目前虚拟化的做法可以分为三种一是Paravirtualization 但缺点是Guest OS 需要经过修改才能使用,所以在Paravirtualization 下是不可能运作Windows 系统的.另外一种则是Full Virtualization 但这作法是将硬体以模拟的方式呈现,所以又会让Guest OS 的效能变差.第三种则是让CPU 去支援虚拟化Intel (VT) and AMD (AMD-V) ,因为有CPU 的支援第一种Paravirtualization 虚拟化的方式似乎变成多余了.
这就是KVM 所支援的方式,直接透过有虚拟化的CPU 去让系统支援Full Virtualization 的Guest OS.另外一个重点是KVM 不须独立的Linux 核心当VMM(Virtual Machine Monitor) ,它透过一般Linux 核心加入KVM 再让这Linux 核心当作VMM ,直接让虚拟化带入到一般核心的世界中.也因此在KVM 下的Guest OS 对于Linux 核心而言都只是一个Process(行程).
 
传统的Linux 在执行时有以区分为Kernel mode(supervisor mode) 和user mode 就如下图所示:
 
Linux的核心(或是其他作业系统的核心)会运作在Kernel mode(supervisor mode)而一般的应用程式(Applications)就运作在user mode.如果应用程式(Applications)需要硬体资源时就透过system call向kernel提出请求.让Kernel完成作业.这样的架构可以确保系统的安全性.请参考CPU - Ring的说明  http://benjr.tw/?q=node/216
 

但是透 Intel (VT) and AMD (AMD-V) 的支援,Linux 的核心(就是VMM)再加上KVM 的功能,就可以直接实现虚拟化的环境,其实KVM 的运作方式和Xen 的Full virtualization 类似,除了原本的Kernel 和User 模式外还多了一个Guest mode 模式(这模式可以让Guest OS 自己拥有Kernel 和User 模式),每一个Virtual Machine 对Linux 而言就如同一个  Process(行程).

 
KVM 是由两个主要的元件(components)所组成:
 
1.Kernel Device Driver(managing the virtualization hardware) - 用来管理和模拟Virtual Machine 的硬体
2.User space process - qemu 是一个PC 硬体模拟器,经过KVM 的修改过而成为kqemu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值