全虚拟化与半虚拟化

问题描述 投票:0回答:1

我是本科生,英语不好(请原谅我..)

full vs. para

在这张图中,我明白了

全I/O虚拟化

“捕获和模拟”-> 虚拟机管理程序应该“捕获”虚拟设备驱动程序的特权指令(因为它们未经修改)并进行二进制翻译。

但是对于 I/O 半虚拟化

有前端驱动和后端驱动(修改为使用超级调用),以便它们可以直接访问物理硬件。

但是为什么I/O半虚拟化需要设备模拟?

我误会了什么?

谢谢。

emulation virtualization paravirtualization
1个回答
0
投票

在经典或常规(或您所说的完整)设备虚拟化中,现实中存在的设备被模拟用于虚拟化环境。可以驱动真实设备的相同本机驱动程序在虚拟化环境中运行,并且虚拟机管理程序需要执行本机驱动程序所需的功能,以相信它所驱动的设备正在成功运行。真实的物理环境可能有也可能没有这样的设备。 在半虚拟化中,驱动程序知道它们正在虚拟化环境中运行。他们“知道”他们正在驾驶虚拟仿真。这通常被设计为在虚拟环境中运行的前端驱动程序和在虚拟机管理程序上运行的后端,但这不是强制性的。半虚拟化仅仅意味着驱动程序了解虚拟化。这可能通过驱动程序使用在真实物理环境中无法使用的工具或技术来体现(例如使用共享内存在前端和后端驱动程序之间进行通信)。它通常还体现在驱动程序的精简和简化上,因为它不必处理真正的硬件(因此没有复杂的寄存器、pci 怪癖、DMA、硬件时序考虑因素等)。

© www.soinside.com 2019 - 2024. All rights reserved.