virtio扫盲

      Virtio 是半虚拟化 hypervisor 中位于设备之上的抽象层。virtio 由 Rusty Russell 开发,他当时的目的是支持自己的虚拟化解决方案 lguest。

      virtio 是对半虚拟化 hypervisor 中的一组通用模拟设备的抽象。该设置还允许 hypervisor 导出一组通用的模拟设备,并通过一个通用的应用编程接口(API)让它们变得可用。下图展示了为什么这很重要。有了半虚拟化 hypervisor 之后,来宾操作系统能够实现一组通用的接口,在一组后端驱动程序之后采用特定的设备模拟。后端驱动程序不需要是通用的,因为它们只实现前端所需的行为。

virtio 提供了一套有效,易维护、易开发、易扩展的中间层 API。virtio 使用 Feature Bits 来进行功能扩展,使用 vring buffer 传输数据。使用 virtio 的设备在配置上于其他 PCI 设备没有太多不同,只不过它只应用于虚拟化环境。

Virtio 设备具备以下特点:

1. 简单易开发

virtio PCI 设备使用通用的 PCI 的中断和 DMA 机制,对于设备驱动开发者来说不会带来困难。

2. 高效

virtio PCI 设备使用针对输入和输出使用不同的 vring,规避了可能的由高速缓存带来的影响。

3. 标准

virtio PCI 不假定其所处的环境一定需要对 PCI 的支持,实际上当前很多 virtio 设备已经在非 PCI 总线上实现了,这些设备根本不需要 PCI。

4. 可扩展

virtio PCI 设备包含一组 Feature Bits,在设备安装过程中,可以告知 guest OS。设备和驱动之间相互协调,驱动可以根据设备提供的特性以及驱动自身能够支持的特性来最终确定在 guest OS 里面能够使用的设备特性。这样可以顾及到设备的前后兼容性。

因此,对与 guest OS 来说,只需要添加一个 PCI 设备驱动,然后 Hypervisor 添加设备的 vring 支持即可以添加一个 virtio 设备。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值