KVM/QEMU简介

KVM虚拟机是基于linux内核虚拟化,自linux2.6.20之后就集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。而xen早期则是基于软件模拟的para-virtualization,新版本是基于硬件支持的完全虚拟化。

qemu是一种模拟处理器,现在运用最多的就是将KVM和QEMU结合起来。

准确来说,KVM是Linux kernel的一个模块,可以用命令modprobe去加载KVM模块。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有KVM模块是不够的。因为用户无法直接控制内核去做事情,还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个power的CPU,并可利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM下载有两大部分(qemu和kvm)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系。

如下图:

Linux Kernel-based Virtual Machine (KVM) 是一款 Linux 开放源码虚拟化软件,基于硬件虚拟化扩展(Intel VT-   X 和 AMD-V)和 QEMU 的修改版。KVM 的实现模块又两个,分别是: kvm.ko是提供核心虚拟化的基础架构;特定于处理器的模块 kvm-intel.ko 和 kvm-amd.ko 。其设计目标是在需要引导多个未改动的 PC 操作系统时支持完整的硬件模拟。

一个普通的linux进程有两种运行模式:内核和用户。而KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。在kvm模型中,每一个虚拟机都是由linux调度程序管理的标准进程。

kvm由两个部分组成:一个是管理虚拟硬件的设备驱动,该驱动使用字符设备/dev/kvm作为管理接口;另一个是模拟PC硬件的用户空间组件,这是一个稍作修改的qemu进程。

转自:http://blog.csdn.net/chenglinhust/article/details/7557791

最新文章

  1. 解决ASP.NET上传文件大小限制
  2. [LeetCode] Rotate List 旋转链表
  3. Socket通信类
  4. Codeforces Round #381 (Div. 2)D. Alyona and a tree(树+二分+dfs)
  5. JavaScript 页面模板引擎
  6. python-redis 入门
  7. HDU 1011 Starship Troopers 树形DP 有坑点
  8. 3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图【Worldsing笔记】
  9. matlab实现插值法sin函数
  10. Java反射学习(java reflect)(三)
  11. Android中使用NDK
  12. SSL协议的握手过程
  13. nativescript——轮播图组件
  14. (NO.00001)iOS游戏SpeedBoy Lite成形记(三)
  15. 关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP
  16. java序列化深拷贝【转】
  17. node.js中的http.response.end方法使用说明
  18. Intellij idea 系列教程之常用配置项
  19. [THUSC2017]巧克力[斯坦纳树、随机化]
  20. python 计算md5

热门文章

  1. SHELL (3) —— 变量知识进阶和实践
  2. python 玩具代码
  3. spring Mvc Web 编码相关 [model 到 视图传递数据] (九)
  4. 【转】用CornerStone配置SVN,HTTP及svn简单使用说明
  5. django+mysql安装和设置
  6. centos7,php7 安装mysqli扩展
  7. 使用Docx4j创建word文档
  8. 005_ss-link.info的ping探测工具
  9. ckeditor:新增时会得到上次编辑的内容
  10. goodrain云平台 mysql主从同步应用创建