一个运行的hypervisor由hypervisor微内核,虚拟化模块,以及一个或多个虚拟机进程实例(qvm)组成。
一、什么是虚拟机?
在QNX hypervisor环境下,一个VM就是一个qvm进程实例。qvm进程就是一个运行在内核外,hypervisor主机上的OS实例。每个实例有一个标识符用于标记它,这样微内核就知道它是一个qvm进程。
如果你记得一些VM相关的事物,记住从guest OS的角度,托管guest的VM就是硬件基础设施。也就意味着,就像OS运行在物理主板一样,在这个“物理主板上”同样包含着内存、CPU、存储器等其他设备一样。
当你配置一个VM,就像你在组装一个硬件平台一样。不同之处就时,你只需要指定你的虚拟机上的虚拟组件来替代物理主板上的硬件组件(如cpu,内存,存储器等)。随后,qvm进程会根据的配置来进行创建初始化。
配置规则与实际的物理主板相同:
- 不要试图安装响应同一个物理地址的组件。
- VM 配置组装的环境必须是要运行的软件(来宾 OS)准备处理的环境。
硬件模拟工作也适合其他方向。虚拟机不需要知道guest在做什么,就像硬件不直达OS在做什么一样。实际上VM也无法知道guest在做什么。
例如,VM不知道为什么guest退出。如果你想知道为什么guest退出,你需要以来guest告诉你为什么要退出。如果guest还没有一个机制来做这件事,你需要开发一个合适的机制来。对于QNX guest,“Shutdown”也许提供了一些相关的功能。
二、qvm 服务
每个qvm进程实例都提供了关键的hypervisor服务。