帖子性质:公开资料整理(信息窗口:2022 年 12 月 – 2026 年 9 月 30 日)。文中标注待确认的信息为公开渠道暂未完全核实的内容,欢迎知情同学在回帖中补充指正。
一、背景简介
Jailhouse 是西门子开源的、基于 Linux 的静态分区(partitioning)hypervisor:先启动 Linux 作为 Root Cell,由其加载并使能 Jailhouse,随后将 CPU、内存、外设静态划分给若干 Non-root Cell,在其中运行裸机应用或适配过的 RTOS/Linux。它不做设备模拟、不做调度、不支持资源超售,以极小的代码量换取强隔离与低开销。
openEuler Embedded 自 2022 年底起引入 Jailhouse,将其作为「嵌入式弹性虚拟化底座」中分区虚拟化形态的技术选型,与裸金属(OpenAMP)、实时虚拟化(ZVM / Rust-Shyper)等形态并列,上层由混合关键性部署框架 MICA(Mixed CriticAlity)统一屏蔽底座差异,提供生命周期管理与跨 OS 通信能力。(来源:openEuler 24.03 LTS、25.03 技术白皮书)
二、适配状态
| 项目 | 状态 | 来源 |
|---|
| openEuler 版本 | 22.03 LTS SP2(白皮书首次提及)→ 23.03 创新版(正式引入)→ 23.09 / 24.03 LTS / 25.03(持续演进) | 各版本白皮书、Embedded 在线文档 |
| Jailhouse 版本基线 | 官方 v0.12(对应上游 commit 76aa7ef29366)+ openEuler 增强补丁 | src-openeuler/Jailhouse 仓库说明 |
| 源码仓库 | AtomGit:src-openeuler/Jailhouse(自 Gitee 迁移) | 仓库页面 |
| 构建集成 | yocto-meta-openeuler 提供 bb 文件与补丁,默认集成进 openeuler-image-mcs 镜像;oebuild 将 MCS_FEATURES 由 openamp 改为 jailhouse 即可构建 | Embedded 在线文档(master) |
| 硬件架构 | 产品化路径以 arm64/aarch64 为主:QEMU(qemu-arm64)、树莓派 4B;x86 为上游能力,openEuler Embedded 文档未见专门适配说明 | 同上 |
| RTOS / Guest | FreeRTOS(QEMU)、Zephyr(QEMU / 树莓派)、Non-root Linux(树莓派) | 同上 |
各版本关键节点:
| openEuler 版本 | Jailhouse 相关进展 |
|---|
| 22.03 LTS SP2(2023.03) | 白皮书将 Jailhouse 列入嵌入式虚拟化底座(分区虚拟化形态,支持 FreeRTOS 混合部署) |
| 23.03 创新版(2023.03) | 正式引入 Jailhouse(菁蓉联创开发者贡献),同时带来图形化配置工具 Jailhouse-gui |
| 23.09 创新版 | MICA 支持 Jailhouse 底座:Root Cell(Linux)拉起 Non-root Cell(RTOS),RPMSG 通信;当时仅支持 arm64 QEMU |
| 24.03 LTS(2024.06) | 「对 Jailhouse 更好的支持」:实现基于 Jailhouse 的 openEuler Embedded 与 Zephyr 多平台混合部署与 OS 间有效隔离;树莓派 4B 三系统混合部署与 HMI 镜像;MICA 支持多实例部署、异常退出后恢复通信链路 |
| 25.03(2025.03) | mica 命令支持 Pedestal=jailhouse 部署底座(mica_ctl.conf);MICA 实现对 Zephyr 的端到端源码集成;分区虚拟化形态支持 openHarmony 混合部署(白皮书) |
| 25.09(2025.09) | 公开资料未见 Jailhouse 专项更新(待确认) |
三、进展摘要
1. 社区引入与治理
- 2022 年 12 月:SIG Industrial-Control Maintainer 郭皓在 TC 例会提案将 Jailhouse 引入 openEuler 社区,由麒麟软件与菁蓉联创科技共同维护;当时规划了 meta-Jailhouse、meta-FreeRTOS、meta-Zephyr、meta-Industrial(工控协议)系列仓库,并计划重构面向工控的 GearOS,目标平台包括鲲鹏 920、飞腾、瑞芯微 RK3399 及树莓派 4B、NXP 等。(来源:openEuler 社区 2022 年 12 月运作报告)
- 上述国产平台(鲲鹏 920 / 飞腾 / RK3399)上的 Jailhouse 落地情况,公开资料未见系统性报告(待确认)。Jailhouse-gui 的示例配置中包含飞腾 D2000 平台(运行 RT-Thread)的完整配置,可视为飞腾平台适配的旁证。
2. 源码包与构建集成
- 源码仓
src-openeuler/Jailhouse(AtomGit)基线为官方 v0.12,配套仓库 yocto-meta-openeuler(Gitee)提供 bb 文件与增强补丁,如 0001-driver-Add-support-for-remote-proc.patch(为 Jailhouse 驱动增加 remoteproc 支持,是 MICA 生命周期管理的基础)。 - 构建路径一:
oebuild 一键集成——修改 compile.yaml 中 MCS_FEATURES 后 bitbake openeuler-image-mcs,Jailhouse 驱动/固件/工具、cell 配置与 demo inmate 直接进镜像。 - 构建路径二:MCS 镜像 SDK 交叉编译 Jailhouse 源码,支持自定义 cell。
- 服务器版主软件源(dnf/RPM)中是否提供 jailhouse 软件包:待确认(截至调研时点未查到官方说明,社区教程按"查不到则源码编译"处理)。
3. Cell 配置与 Demo
QEMU(qemu-arm64)与树莓派 4B 均有完整文档路径:
- QEMU:
qemu-arm64-openeuler-demo.cell / qemu-arm64-inmate-demo.cell + uart-demo;qemu-arm64-mcs.cell + qemu-zephyr-ivshmem(Zephyr Non-root Cell,IVSHMEM 通信);另有 jailhouse-freertos demo,FreeRTOS 启动后打印 "This is freertos from the openeuler community!"。 - 树莓派 4B:
rpi4.cell / rpi4-linux.cell / rpi4-zephyr-ivshmem.conf;支持 openEuler(1 核)+ openEuler(2 核)+ Zephyr(1 核) 三系统混合部署;提供 HMI 图形镜像(wayfire 桌面)与 tiny 裁剪镜像两种构建配置;大部分外设(SD 卡、USB、GPU)分配给 Non-root Cell,Root Cell 仅保留 UART1 与以太网。
4. MICA 混合关键性部署框架
MICA 通过 Pedestal 参数屏蔽底座差异,Jailhouse 是其虚拟化底座选项之一:
- 生命周期管理:
mica create/start/stop 管理 RTOS 实例(配置文件指定 CPU、镜像路径、Pedestal=jailhouse 与对应 Non-root Cell 配置)。 - 跨 OS 通信:IVSHMEM 共享内存 + RPMSG(23.09 起)。
- 24.03 LTS 起 MICA 支持多实例部署与异常恢复;25.03 的白皮书明确分区虚拟化形态支持 UniProton/Zephyr/FreeRTOS 与 openEuler Embedded Linux 混合部署,亦支持 openHarmony 混合部署。
5. 工具链:Jailhouse-gui
23.03 版本随 Jailhouse 引入 Python 编写的图形化管理工具 Jailhouse-gui(Gitee:openeuler/Jailhouse-gui):硬件平台信息展示、cell 配置查看与修改、cell 加载/运行/停止的图形化与远程管理,支持加载 Linux / FreeRTOS / Baremetal;需配合目标机侧 rpc_server 服务使用。(来源:openEuler 社区 2023 年 3 月运作报告、Jailhouse-gui 仓库 README)
6. RISC-V 方向与上游协作
- 上游 RISC-V 移植:由 SIEMENS(SELENE 项目)与 OTH Regensburg 合作推进,2023 年 5 月 19 日向 jailhouse-dev 邮件列表提交 [PATCH v3 00/73] 系列补丁,支持 h-extension(RV64)、SV39/48/57 分页、PLIC 与 APLIC/IMSIC(AIA)、SSTC、多核 Non-root Cell、Non-root Linux、IVSHMEM,目标平台为 QEMU 虚拟平台;开发分支位于
github.com/lfd/jailhouse。该系列是否已合入上游 master/next:待确认(截至调研时点上游 master 最后一次提交停留在 2023 年 1 月,v0.12 之后无新正式 release)。 - openEuler 侧:开源之夏 2025 设立「jailhouse 到 RISC-V 移植支持」课题(导师:中科院软件所李金锷,OERV 团队),课题产出与结项详情待确认;openEuler Developer Day 2026 RISC-V 分论坛上,中科院软件所张正介绍了 RISC-V 上 MICA、ZVM 的进展,以及「后续在完整支持 IOMMU / AIA 硬件上的 Jailhouse 支持计划」——即 RISC-V 上的 Jailhouse 产品化以相应硬件能力为前置条件。(来源:OSPP 课题 issue、Developer Day 2026 分论坛回顾)
四、能力边界与已知问题
能力边界
- 架构:产品化与文档化路径集中在 arm64(QEMU、树莓派 4B);x86 未在 openEuler Embedded 文档中提供专门适配说明;RISC-V 处于研究/课题阶段。
- MICA on Jailhouse 的验证范围:25.03 文档对
Pedestal=jailhouse 的表述为「当前支持在 QEMU 上配置」,树莓派路径以 master 文档为准,两者时点表述存在差异,建议以对应版本官方文档为准确认。 - Jailhouse 固有限制(上游设计使然,非 openEuler 特有):静态分区、无设备模拟、无调度、不支持资源超售;hypervisor 与各 cell 需在启动时预留连续物理内存(
mem= 或设备树 reserved-memory)。
已知问题
- src-openeuler/Jailhouse 仓库 FAQ:openEuler 系统需分配在非 0 核,否则 Jailhouse 加载虚拟化系统失败,原因待查明。
- Gitee issue [IAGHCF](2024.07):openEuler Embedded 24.03-LTS qemu-aarch64 上
jailhouse enable + mica create 失败(micad 报错),处理进展待确认。 - 上游 RISC-V 补丁自身声明的限制:vIRQ 仅最低优先级(有意为之)、PLIC 全虚拟化开销较高、Linux 侧依赖尚未合入主线 AIA 支持树。
后续规划(公开资料口径)
- RISC-V 上的 Jailhouse 支持:待 IOMMU / AIA 硬件能力齐备后推进(Developer Day 2026 口径)。
- openEuler Embedded 弹性虚拟化底座持续演进:24.03 LTS 白皮书预告的底座能力增强在各版本 release notes 中陆续兑现(如 25.03 对 XEN 支持的完善、Zephyr 端到端集成);Jailhouse 侧在 25.03 之后版本的具体规划待确认。
src-openeuler/Jailhouse 仓库欢迎社区贡献 Features。
五、参考资料
openEuler 社区侧
- openEuler Embedded 在线文档 · Jailhouse 特性(master):https://embedded.pages.openeuler.org/master/features/jailhouse.html
- openEuler Embedded 23.03 文档 · Jailhouse:https://embedded.pages.openeuler.org/openEuler-23.03/features/jailhouse.html
- openEuler Embedded 22.03 LTS SP3 文档 · Jailhouse:https://pages.openeuler.openatom.cn/embedded/docs/build/html/openEuler-22.03-LTS-SP3/features/jailhouse.html
- openEuler Embedded 23.09 文档 · 基于 Jailhouse 的混合部署框架:https://embedded.pages.openeuler.org/openEuler-23.09/features/mica/mica_jailhouse.html
- openEuler Embedded 25.03 文档 · mica 命令与配置文件:https://embedded.pages.openeuler.org/openEuler-25.03/features/mica/mica_ctl.html
- src-openeuler/Jailhouse 源码仓(AtomGit):https://atomgit.com/src-openeuler/Jailhouse
- yocto-meta-openeuler 构建仓(Gitee):https://gitee.com/openeuler/yocto-meta-openeuler
- Jailhouse-gui 工具仓(Gitee):https://gitee.com/openeuler/Jailhouse-gui
- openEuler 22.03 LTS SP2 Technical White Paper:https://www.openeuler.org/whitepaper/en/openEuler%2022.03%20LTS%20SP2%20Technical%20White%20Paper.pdf
- openEuler 24.03 LTS 技术白皮书:https://www.openeuler.org/whitepaper/openEuler%2024.03%20LTS%20%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf
- openEuler 25.03 技术白皮书:https://www.openeuler.org/whitepaper/openEuler%2025.03%20%E6%8A%80%E6%9C%AF%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf
- openEuler 社区 2022 年 12 月运作报告(Jailhouse 引入提案):https://www.openeuler.org/zh/news/20230113-12%E6%9C%88%E6%9C%88%E6%8A%A5/12%E6%9C%88%E6%9C%88%E6%8A%A5.html
- openEuler 社区 2023 年 3 月运作报告(23.03 引入 Jailhouse 与 Jailhouse-gui):https://www.openeuler.org/zh/news/20230410-yuebao/20230410-yuebao.html
- openEuler Embedded 24.03 Release Notes:https://pages.openeuler.openatom.cn/embedded/docs/build/html/openEuler-24.09/releases/release-notes-24.03.30.html
- openEuler Embedded 25.03 Release Notes:https://embedded.pages.openeuler.org/master/releases/release-notes-25.03.30.html
- 开源之夏 2025 课题 issue「jailhouse 到 RISC-V 移植支持」:https://gitee.com/openeuler/open-source-summer/issues/IC4849
- openEuler Developer Day 2026 RISC-V 分论坛回顾:https://modb.pro/db/2054357503236988928
- Gitee issue IAGHCF(24.03-LTS qemu-aarch64 jailhouse+mica create 失败):https://gitee.com/openeuler/yocto-meta-openeuler/issues/IAGHCF
Jailhouse 上游侧
- siemens/jailhouse 官方仓库:https://github.com/siemens/jailhouse
- [PATCH v3 00/73] RISC-V support for Jailhouse(2023-05-19,jailhouse-dev 邮件列表):https://www.mail-archive.com/jailhouse-dev@googlegroups.com/msg11251.html@googlegroups.com/msg11251.html
- lfd/jailhouse(OTH Regensburg 维护,含 RISC-V 开发分支):https://github.com/lfd/jailhouse
- jailhouse-dev 邮件列表存档:https://www.mail-archive.com/jailhouse-dev@googlegroups.com@googlegroups.com