0

我正在阅读 ABI 上的维基百科页面该页面描述了 ABI 必须指定的内容,以及 Xen 页面,该页面声明他们有一个特殊的超级调用 ABI 用于其半虚拟化。我的问题是,既然程序将使用虚拟机中的 Windows ABI 执行,那么 Xen ABI 是如何成为 ABI 的?

4

1 回答 1

0

Xen 有两种运行客户系统的方式:

  1. 半虚拟化来宾,使用该 ABI 与管理程序合作。这需要修改来宾才能工作(这需要其源代码的可用性)。
  2. 使用 CPU 的虚拟化功能,例如 AMD 的 SVM 或 Intel 的 VT。在这种情况下,客人无需遵守 ABI。

所以 Xen 的 ABI 只与第一种情况有关。

编辑:在来宾操作系统上运行的用户空间应用程序不需要修改,假设它们不尝试直接访问硬件(或者操作系统捕获这些访问并以主机友好的方式处理它们)。因此,只需修改该客户机的内核(此处包括驱动程序等),它将运行任何未修改的应用程序。

于 2009-06-07T14:58:24.340 回答