1. 波佩克/戈德堡定理
Popek/Goldberg 定理指定虚拟机管理程序应满足以下三个条件:
等价
在虚拟机管理程序中运行的虚拟机 (VM)本质上与基础硬件相同。来宾无需知道它正在 VM 中运行才能正常运行。
不排除使用半虚拟化设备或其他需要虚拟化意识的策略。此类策略可用于提供功能和提高性能。
安全
除了来宾访问直通设备内存之外,虚拟机管理程序始终保持对硬件的控制,而不管来宾正在做什么。它控制来宾访问硬件设备的能力,限制来宾访问其分配的内存区域的主机物理内存的能力,对调度具有最终控制权,管理中断路由,并具有终止来宾的能力,而不管来宾可能尝试做什么。
性能
与直接在硬件上运行相比,在 VM 中运行的程序的执行速度仅略慢。
2. 命名(术语)说明
设备
我们使用设备或表示作为物理组件存在于系统上的硬件设备。对比 vdev(虚拟设备).
Guest(来宾)
来宾是Guest OS和在Guest OS上运行的任何应用程序;qvm 进程实例托管来宾。来宾在 qvm 中运行。
Host(主机)
是指虚拟机管理程序或虚拟机管理程序中的某些内容(例如,CPU 指示来宾线程退出来宾模式并继续以主机模式运行)。有时等同于主机域或虚拟机管理程序
虚拟机管理程序
使用术语 QNX 虚拟机管理程序或虚拟机管理程序来指代 QHS 和 QNX 虚拟机管理程序。
QVM
qvm(或 qvm 进程)是虚拟机管理程序中托管来宾的进程。
虚拟机管理程序启动 qvm 进程实例;每个 qvm 流程实例都提供一个虚拟机 (VM),来宾可以在其中运行。
qvm 进程有时在虚拟机管理程序主机域的权限级别(它是虚拟机管理程序的一部分)运行,有时在其托管的来宾的较低权限级别运行。
vdev(虚拟设备)
我们使用虚拟设备(或 vdev)来表示虚拟机管理程序以某种方式虚拟化的任何设备。
vdev 的示例包括中断控制器(虚拟化)或以太网设备控制器(半虚拟化)。
VM(虚拟机)
虚拟机或虚拟机由 qvm 流程实例呈现给在 VM 中运行的来宾。VM 托管来宾。
3.文件名约定
虚拟机管理程序
vdev-
该文件是虚拟设备。
.build
该文件是一个构建文件,适用于 QNX 虚拟机管理程序主机域或 QNX 客户机。
.img
可启动映像。此映像可能仅包括虚拟机管理程序主机域、一个来宾或主机域和一个或多个来宾。
.qvmconf
VM 的配置文件。它由 qvm 流程实例解析以组装 VM。
例子
虚拟机管理程序发布板。type,其中是虚拟机管理程序版本,是硬件平台,并且是文件类型(build 或 img)。例如:hypervisor2.0-fooboard.build 和 hypervisor2.0-fooboard.img。releaseboardtype
来宾构建文件和映像的名称组成如下:guestos。type,其中是来宾操作系统(例如,qnx70、qnx66、linux44),并且是文件类型(build 或 img)。如果QNX 虚拟机管理程序系统将具有同一操作系统的多个实例,请为每个实例添加一个字母。例如:qnx7a.build 和 qnx7b.img。
虚拟机配置文件
qvm 进程的配置文件名称组成如下:guest.qvmconf,其中来宾操作系统(例如 qos21、qnx70、linux44)将在此文件配置的 VM 中运行。