- GVM: Guest Virtual Machine
- QVM: hypervisor的一个process
- PVM: Physical virtual machine
- LA: Linux Android
- LV: Linux Vehicle/Auto Grade Linux
- VMM:Virtual machine manager
- HAB:Hypervisor Abstract Communication driver
学习网址: QNX Hypervisor
Type1(裸机型):Hypervisor直接运行在硬件上,操作系统在Hypervisor之上运行。

Type2(托管型):Hypervisor运行在Host OS操作系统上,其他操作系统均在Hypervisor上运行。
类似Windows 跑virtualbox,VMWare之类。


QNX Hypervisor 2.0
QNX 智能座舱Hypervisor
依据Hyper分类特点,QNX 智能座舱Hypervisor属于Type1 L型 Hyervisor。
VMM负责任务如下:
常用用例:

各GVM通讯IP地址:
static char* vm_ip_address[] = {
[1] = "192.168.1.1", //host PVM --- 主机
[2] = "192.168.1.3", //LA GVM ---Android IVI
[3] = "192.168.1.2", //LV GVM
[4] = "192.168.1.4", //QNX GVM
};
资源管理路径及框架:
路径:qnx_ap/AMSS/platform/vm/resources/
.
├── Makefile
├── vclock_drv
│ ├── aarch64
│ │ ├── Makefile
│ │ └── so-le-qvmguest
│ ├── common.mk
│ ├── inc
│ │ └── clock_utils.h
│ ├── Makefile
│ └── src
│ └── vclock.c
├── vmm_drv
│ ├── aarch64
│ │ ├── Makefile
│ │ ├── o-le
│ │ └── o-le-g
│ ├── common.mk
│ ├── inc
│ │ ├── list.h
│ │ ├── vmm_drv.h
│ │ ├── vmm_fsm.h
│ │ └── vmm_log.h
│ ├── Makefile
│ ├── protected
│ │ └── vdev_events.h
│ └── src
│ ├── vmm_drv.c
│ └── vmm_fsm.c
└── vqcore
├── aarch64
│ ├── Makefile
│ └── o-le-qvmguest
├── arm
│ ├── Makefile
│ └── o-le-v7
├── common.mk
├── Makefile
└── src
└── vqcore_main.c
code: qnx_ap/AMSS/platform/services/applications/vmm_lifecycle/vmm_lifecycle.c
功能:
交互接口: /dev/vmm
操作指令:
启动:echo control 1
dev/vmm 终止(关闭):echo control 0
dev/vmm
操作:


触发看门狗重启qvm
不直接操作/dev/vmm 实现关闭,启动vm
发送信号关闭/终止QVM进程:
关闭/终止 qvm(GVM):slay -s SIGQUIT qvm
信号详解:
SIGQUIT : 程序终止(interrupt)信号,用于通知前台进程组终止进程。

触发看门狗重启qvm
如下图,qvm每隔10S喂狗一次。

TODO
VirtIO架构图:

TODO
TouchScreen
Keyboard
TODO
TODO
TODO