代码越少,越实时、越可信——Jailhouse 官方设计宣言译读
The overall design target is simplicity. As little code as possible should be used in order to fulfill the two most important requirements for Jailhouse: Realtime capability and certifiability (verifiability).
整体设计目标是简洁。应以尽可能少的代码,来满足 Jailhouse 最重要的两个需求——实时性(Realtime capability)与可认证性/可验证性(certifiability / verifiability)。
两个关键词的语境含义:
- 简洁 = 少代码:这是 Jailhouse 区别于 KVM/Xen 等大型 hypervisor 的核心哲学。代码量越小,需要审查和验证的面就越小。Jailhouse 核心只有一万多行 C,Xen 是几十万行级别。
- 可认证性(certifiability):指能通过功能安全认证(如 ISO 26262 汽车、IEC 61508 工业、DO-178C 航空)。认证成本与代码量近似成正比——十几万行的系统做认证基本不现实,小而精的才有机会。所以这里 certifiability 和括号里的 verifiability(可验证性,即通过形式化方法或人工审查证明其正确性)是一体的。
一句话概括:代码越少,越实时、越可信。
Therefore, Jailhouse is a type 1 hypervisor. The first initialization of the hardware is done by Linux, so the hypervisor can remain extremely lean. Right from the beginning, a large number of supported (and supportable) hardware is therefore available. And it should become an open source solution (GPLv2), so that it is visible for everyone what is done and how it is done.
因此,Jailhouse 是一个 Type 1(裸金属型)hypervisor。硬件的首次初始化由 Linux 完成,这样 hypervisor 本身可以保持极其精简。也正因如此,从项目伊始,大量已支持(以及可支持)的硬件就已可供使用。此外,它应成为开源方案(GPLv2),让每个人都能看清它做了什么、以及是如何做到的。
几个要点展开:
- Type 1 hypervisor:直接运行在裸机硬件上(bare-metal),不依赖宿主操作系统。Jailhouse 的特别之处在于走了一条「混合启动」路线——先用 Linux 把内存、CPU 核、中断控制器、设备树等全部初始化好,然后通过 jailhouse enable 把 Linux 本身「降级」为 root cell,hypervisor 才接管系统。借 Linux 初始化的精妙之处:编写 hypervisor 最繁重的工作就是硬件初始化(内存管理、时钟、中断)。Jailhouse 把这坨活全部甩给成熟的 Linux 内核,自己只在静态分区(static partitioning)的核心逻辑上保持精简——这正是上一句「少代码」哲学的实现手段。
- 硬件支持面:因为初始化由 Linux 做,理论上「Linux 能跑的板子,Jailhouse 就大概率能移植」——这也是为什么社区移植遍及 x86、ARM、RISC-V。
- GPLv2 的深意:与「可认证性」呼应——开源 + 代码精简 = 任何认证机构或安全工程师都能完整审计。闭源黑盒在安全关键领域寸步难行。
这两段连起来就是 Jailhouse 的设计宣言:借力 Linux 起步、保持自身极简、开源接受检验。
Jailhouse therefore permits solutions, which were previously distributed across different computers/ controllers, to be combined and run on a homogeneous or heterogeneous multi-core CPU. Thanks to the ability to support different operating systems, the applications often need not be changed.
In the context of security, it ist also interesting to think about the combination of Trusted Platform Module (TPM) or TrustedZone (TZ), Trusted Execution Environment (TEE) and hypervisor.
因此,Jailhouse 允许把原先分散在不同计算机/控制器上的解决方案,整合到同构或异构多核 CPU 上运行。得益于对多种操作系统的支持,应用程序通常无需修改。
在安全领域,将可信平台模块(TPM)、TrustZone(TZ)、可信执行环境(TEE)与 hypervisor 相结合,同样是一个值得探索的方向。
要点解读:
- 「整合分散的控制器」是 Jailhouse 的典型应用叙事:传统嵌入式方案里,实时控制(跑 RTOS 的 MCU)和人机界面/网络通信(跑 Linux 的 CPU)是两颗芯片、两条总线。Jailhouse 让一颗异构 SoC 静态分区后同时干这两件事——大核一块跑 Linux、一块跑 RTOS 或裸机实时任务——省掉芯片间的通信链路,也省 BOM 成本。
- 「应用通常无需修改」:因为非实时 cell 里跑的就是标准 Linux,实时 cell 里跑标准 RTOS/裸机程序,分区只是资源划分层面的改动,应用层无感——这是对甲方最有说服力的迁移成本论证。
- TrustZone 是硬件层隔离(Secure/Non-secure 世界);
- TEE(如 OP-TEE)是构建在 TrustZone 之上的安全 OS;
- TPM 是独立的安全芯片;
- Jailhouse 补上的是「非安全世界内部的强隔离」这一层。
相关推荐
jailhouse-master_hypervisor_
总结,Jailhouse Hypervisor以其独特的设计和优秀的代码质量,为嵌入式系统提供了一种全新的虚拟化选择,它不仅降低了系统的复杂性,还提高了安全性,是现代工业和物联网领域的理想选择。
jailhouse-two-inmates.zip
本文详细介绍了Jailhouse单元配置的各个方面,包括单元描述符、CPU集合、内存区域、中断控制器和PCI设备的设置。通过'linux-demo1'和'rpi4-two'两个具体示例,展示了如何配置
基于树莓派4B的Jailhouse源码资源
jailhouse-0.12源码提供了构建和配置Jailhouse所需的代码,包括核心虚拟化模块、驱动和工具。5.
基于Linux内核的Jailhouse虚拟化分区hypervisor设计源码
本项目即是围绕Jailhouse虚拟化技术,以Linux内核为基础,设计并实现了一款轻量级的hypervisor。
基于麒麟软件优化的Jailhouse虚拟化代码与多语言demo示例设计源码
基于麒麟软件优化的Jailhouse虚拟化代码与多语言demo示例设计源码,是一套经过精心优化的代码库,旨在提升虚拟化平台的性能表现。


