【问题标题】:System Virtualization : Understanding IO virtualization and role of hypervisor [closed]系统虚拟化:了解 IO 虚拟化和管理程序的作用 [关闭]
【发布时间】:2012-10-11 08:07:05
【问题描述】:

我想正确理解 I/O 虚拟化。上下文是纯/完全虚拟化,而不是半虚拟化。

我的理解是管理程序虚拟化硬件并为每个沙盒应用程序提供虚拟资源。每个沙盒都认为自己在访问底层硬件,但实际上并非如此。相反,它是管理程序执行所有访问。这是我需要更好地理解的方面。

假设一个芯片有一个硬件定时器,打算被操作系统内核用作滴答定时器。假设有 2 个虚拟机(例如 Windows 和 Linux)在管理程序之上运行。

所有虚拟机均未修改其源代码。所以他们继续吐出直接对定时器资源进行编程的指令。

虚拟机管理程序在这里的真正作用是什么?如何真正阻止这两个操作系统访问真实的东西?

【问题讨论】:

    标签: system virtual-machine virtualization hypervisor


    【解决方案1】:

    经过一番阅读,我已经达到了一定程度的理解:

    https://stackoverflow.com/a/13045437/1163200

    我在这里完全复制它:

    这是试图回答我自己的问题。

    System Virtualization : Understanding IO virtualization and role of hypervisor

    虚拟化

    作为一个概念的虚拟化使多个/不同的应用程序可以在相同的底层硬件上共存,而不会相互察觉。

    例如,成熟的操作系统(如 Windows、Linux、Symbian 等)及其应用程序可以在同一平台上共存。所有计算资源都是虚拟化的。

    这意味着上述机器都没有访问物理资源的权限。唯一可以访问物理资源的实体是称为虚拟机监视器(又名 Hypervisor)的程序。

    现在这很重要。请仔细阅读并重新阅读。

    管理程序为上述每台机器提供虚拟化环境。由于这些机器访问的不是物理硬件而是虚拟硬件,因此它们被称为虚拟机。

    例如,Windows 内核可能想要启动一个物理计时器(系统资源)。假设定时器是内存映射IO。 Windows 内核在定时器地址上发出一系列加载/存储指令。在非虚拟化环境中,这些加载/存储会导致对定时器硬件进行编程。

    但是在虚拟化环境中,这些基于加载/存储的物理资源访问将导致陷阱/故障。陷阱由管理程序处理。 Hypervisor 知道 windows 试图对计时器进行编程。管理程序为每个虚拟机维护 Timer 数据结构。在这种情况下,管理程序会更新它为 Windows 创建的计时器数据结构。然后它对真正的计时器进行编程。定时器产生的任何中断首先由管理程序处理。更新虚拟机的数据结构,调用后者的中断服务程序。

    长话短说,Windows 做了它在非虚拟化环境中会做的所有事情。在这种情况下,它的操作导致更新的不是真实的系统资源,而是虚拟资源(上面的数据结构)得到更新。

    因此所有虚拟机都认为他们正在访问底层硬件;实际上他们不知道,对物理硬件的所有访问都是通过虚拟机管理程序进行调解的。

    上述所有内容都是完整/经典虚拟化。大多数现代 CPU 不适合经典虚拟化。陷阱/故障不适用于所有指令。因此,在现代设备上很容易绕过管理程序。

    这就是半虚拟化应运而生的地方。虚拟机源代码中的敏感指令被对 Hypervisor 的调用所取代。上面的 load/store sn-p 可以用诸如

    之类的调用来代替
    Hypervisor_Service(Timer Start, Windows, 10ms); 
    

    仿真

    仿真是一个与虚拟化相关的话题。想象一个场景,最初为 ARM 编译的程序在 ATMEL CPU 上运行。 ATMEL CPU 运行一个仿真程序,该程序解释每条 ARM 指令并在 ATMEL 平台上模拟必要的操作。因此,模拟器提供了一个虚拟化环境。

    在这种情况下,系统资源的虚拟化不是通过陷阱和执行模型来执行的。

    【讨论】:

    • +1 再次提及答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2013-09-10
    相关资源
    最近更新 更多