完整的 Jailhouse 组件主要由内核模块(jailhouse.ko
)、虚拟机管理程序固件(jailhouse*.bin
)、管理工具(jailhouse
命令行程序及一些 Python 脚本)以及配置文件(.cell
)这四部分组成。用户使用它们来启用虚拟机管理程序、创建 Cell、加载 inmate 二进制文件以及运行和停止它等。
使能 Jailhouse
要使用 Jailhouse,必须首先在宿主 Linux 系统中使用 jailhouse enable SYSCONFIG.cell
加载一个全局配置文件告诉 Jailhouse 当前平台总共有哪些可用的硬件资源。执行后,原来的宿主 Linux 系统就变为了 Jailhouse 的 Root Cell。
整个使能过程就是围绕如上所示的内存布局来进行的,下面我们详细分析整个过程。
enable()
对于 jailhouse enable SYSCONFIG.cell
这个命令,首先会来到 tools/jailhouse.c
的 static int enable(int argc, char *argv[])