我有一些过时的设备用于运行实验装置。不幸的是,该设备只能在使用 FireWire/IEEE1394 的 WinXP 上运行,这对我们来说越来越难以维护硬件。不幸的是,我们也没有钱来更换这些设备。我们讨论了可能尝试在较新的操作系统上虚拟化 XP 环境。我一直在阅读有关 VFIO/IOMMU 的信息,并想也许我可以通过 FireWire PCI 卡并这样做。
再加上 - 我让它工作。我用 QEMU-KVM 管理程序安装了 XP。设置好,通过火线卡,所有都在VM中被识别,包括当我将设备连接到FW卡时。XP 设备管理器看到它就在那里。
不幸的是,我发现与硬件的实际交互充其量似乎是敏感的。事情以奇怪的、无法解释的方式出现。其中一些让我认为来宾操作系统没有与通过卡正确通信。这令人惊讶,因为我的印象是通过卡直接由客户操作系统使用,无需主机操作系统干预。
我的问题基本上是 - 如果我正在虚拟化一个较旧的系统并通过所需的各种端口/卡,它是否应该表现得像裸机一样?或者在某些情况下,来宾操作系统尝试做的事情与裸机不同(即,当指令离开 VM 时,主机操作系统会改变某些东西)?正如我所说 - 我的印象是客户操作系统直接与硬件交互,但经验让我怀疑这是否真的如此。
我想知道这一点的部分原因是,如果使用其他硬件接口的行为异常(电源由计算机控制的 IE 激光器),其他设备会更危险或导致设备损坏。因此,如果来宾操作系统认为它正在做的事情与实际现实脱节,这是一个安全风险,我想在继续之前了解它。