赞
踩
虚拟化环境必须使用客户操作系统自身的驱动感觉不到自己运行在虚拟机上,不然让客户操作系统开发人员编写大量代码同样不是一个很好的设计方案,因此虚拟化系统需要提供抽象设备,抽象设备实现了针对特定设备类的高级接口,目前比较高效的设备虚拟化接口是Virtio,KVM、Xen、QNX等都在使用Virtio接口。
不同的虚拟化解决方案都会给操作系统带来负担,负担的大小取决于各个解决方案的需求。其中的一项开销为设备的虚拟化。virtio 并没有提供多种设备模拟机制(针对网络、块和其他驱动程序),而是为这些设备模拟提供一个通用的前端,从而标准化接口和增加代码的跨平台重用。
在传统的完全虚拟化环境中,虚拟化系统必须捕捉这些请求,然后模拟物理硬件的行为。尽管这样做提供很大的灵活性(即运行未更改的操作系统),但它的效率比较低。通过使用Virtio,客户操作系统包含了充当前端的驱动程序,虚拟化系统为特定的设备模拟实现后端驱动程序。通过在这些前端和后端驱动程序中的 virtio
,为开发模拟设备提供标准化接口,从而增加代码的跨平台重用率并提高效率。在传统虚拟化系统中,会使用QEMU通过纯软件的方式来模拟I/O 设备,包括键盘、鼠标、显示器,硬盘和网卡等。QEMU对客户操作系统响应的过程如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。