虚拟化设备-Virtio介绍

虚拟化环境必须使用客户操作系统自身的驱动感觉不到自己运行在虚拟机上,不然让客户操作系统开发人员编写大量代码同样不是一个很好的设计方案,因此虚拟化系统需要提供抽象设备,抽象设备实现了针对特定设备类的高级接口,目前比较高效的设备虚拟化接口是Virtio,KVM、Xen、QNX等都在使用Virtio接口。

不同的虚拟化解决方案都会给操作系统带来负担,负担的大小取决于各个解决方案的需求。其中的一项开销为设备的虚拟化。virtio 并没有提供多种设备模拟机制(针对网络、块和其他驱动程序),而是为这些设备模拟提供一个通用的前端,从而标准化接口和增加代码的跨平台重用。

在传统的完全虚拟化环境中,虚拟化系统必须捕捉这些请求,然后模拟物理硬件的行为。尽管这样做提供很大的灵活性(即运行未更改的操作系统),但它的效率比较低。通过使用Virtio,客户操作系统包含了充当前端的驱动程序,虚拟化系统为特定的设备模拟实现后端驱动程序。通过在这些前端和后端驱动程序中的 virtio,为开发模拟设备提供标准化接口,从而增加代码的跨平台重用率并提高效率。在传统虚拟化系统中,会使用QEMU通过纯软件的方式来模拟I/O 设备,包括键盘、鼠标、显示器,硬盘和网卡等。QEMU对客户操作系统响应的过程如下:

  1. 客户机的设备驱动程序发起I/O 请求操作请求
  2. KVM 模块中的I/O 操作捕获代码拦截这次I/O 请求
  3. 经过处理后将本次I/O 请求的信息放到 I/O共享页(sharing page),并通知用户空间的 QEMU 程序。
  4. QEMU 程序获得I/O 操作的具体信息之后,交由硬件模拟代码来模拟出本次I/O 操作。
  5. 完成之后,QEMU 将结果放回I/O 共享页,并
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值