LINUX的XEN和KVM到底区别在什么地方?

source: https://www.zhihu.com/question/19844004/answer/121347310

作者:joydchh
链接:https://www.zhihu.com/question/19844004/answer/121347310
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

有个几个重要区别:
1. KVM内置于Linux,是内核模块;xen是Linux的一个应用。所以KVM可以直接利用Linux来做一些在xen中需要利用hypervisor来做的事情,比如任务调度,内存管理等等。所以相比之下,KVM更轻量,更易管理,并且版本更新也可以随着内核的更新。

2. 从架构中
KVM
<img src="https://i-blog.csdnimg.cn/blog_migrate/473a5452636257db3a5e5e4d97bb0ecb.png" data-rawwidth="769" data-rawheight="633" class="origin_image zh-lightbox-thumb" width="769" data-original="https://pic1.zhimg.com/e4f5b20e348b6b5cc8d85a587f1041e4_r.png">qemu通过libkvm应用程序接口,用fd通过ioctl向设备驱动来发送创建,运行虚机的命令。设备驱动kvm接下来解析命令。

qemu通过libkvm应用程序接口,用fd通过ioctl向设备驱动来发送创建,运行虚机的命令。设备驱动kvm接下来解析命令。
虚机运行时,有三种模式:
-客户模式:执行非io的客户代码,虚机在这个模式下运行;
-用户模式:代表用户执行io操作,qemu运行在这个模式;
-内核模式:实现客户模式的切换,,kvm工作在这个模式。

XEN
<img src="https://i-blog.csdnimg.cn/blog_migrate/35a6b1bc9c158ff04bc03f200820841b.png" data-rawwidth="1300" data-rawheight="1064" class="origin_image zh-lightbox-thumb" width="1300" data-original="https://pic1.zhimg.com/1a2e759a10cbaa7acc70b20d53cb0874_r.png">domain0做为对hypervisor的扩充,提供对整个平台的管理,直接拥有系统硬件输入输出设备。domain1是一个设备驱动域,拥有部分物理设备。从domain2开始,是普通的用户虚拟化域,不具有任何物理设备,而是通过虚拟设备向位于domain0的后端设备驱动程序申请服务,从而实现对设备的访问。 domain0做为对hypervisor的扩充,提供对整个平台的管理,直接拥有系统硬件输入输出设备。domain1是一个设备驱动域,拥有部分物理设备。从domain2开始,是普通的用户虚拟化域,不具有任何物理设备,而是通过虚拟设备向位于domain0的后端设备驱动程序申请服务,从而实现对设备的访问。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值