一个QNX hypervisor由hypervisor微内核、虚拟化扩展和一个或多个QVM进程实例组成。
一、QNX hypervisor系统的两种形式
下面两个图表示了一个高层级的QNX hypervisor架构和其他一些用于访问虚拟、物理设备的可用配置项。不是所有的可用guest-device(访客设备)配置都展示出来了。下图只列出来了一部分:
从上图中我们可以看到一个静态的分层的hypervisor系统。不够很不幸的是,它可能会产生一些误导。比如,你会误以为官方建议访客运行在VMs或主机系统上。更糟糕的是,我们每次描述hypervisor时我们的上下文都是在说访客运行在VM虚拟机上。
实际上,一个访客并不是真正运行在VM上。Hypervisor也不是一个为CPU翻译访客指令的中间人。VM定义了虚拟硬件然后展示给访客。访客不需要知道它正在“在”VM 中运行,而不是在由硬件直接定义的环境中运行。
为什么这么说呢?
因为当一个gues在运行时,它的指令执行在物理CPU上,就好像hypervisor并不存在,guest直接在物理硬件上运行一样。只有当guest尝试执行一个它没有权限执行的指令时,hypervisor会监视虚拟化硬件捕捉当前