Jailhouse 概要介绍、设计目的、设计特点

Jiaming
操作系统领域优质创作者
博客专家认证
2023-05-08 17:13:56

目录

  • 1. Jailhouse 概要介绍
  • 2. Jailhouse 设计目的
  • 3. Jailhouse 设计特点
  • 4. 关注 Jailhouse 的企业信息

1. Jailhouse 概要介绍

Jailhouse是一个针对创建工业级应用程序的小型Hypervisor,于2013年诞生,由西门子公司赞助,得到了官方Linux内核的支持,在开源社区中获得了知名度和吸引力,它支持Intel和AMD的X86-64架构,以及ARM的32位和64位架构(需要指令集支持硬件辅助虚拟化)。

如图(A visualization of Linux running-bare metal (a) and under the Jailhouse hypervisor (b) alongside a real-time application)^1,Jailhouse是一种Type-1的Hypervisor,更关注隔离而非虚拟化。与Xen一样,Jailhouse也需要Linux,因为其基于Linux实现管理任务,与KVM一样,Jialhouse通过Linux系统加载,然而,一旦Hypervisor启动,它就会完全控制硬件并将硬件资源分给独立的cell,这些cell完全专用于guestOS,其中一个cell(root cell)运行Linux,root cell有点类似于Xen中的Dom0,但是,root cell不会像Dom0那样彻底地对硬件资源完全控制,相反,root cell在新的cell被创建时,会把对它的一些CPU、设备和内存资源的控制权让给新的cell,这个过程称为shrinking。(来自欧盟HERCULES(High-Performance Real-time Architectures for Low-Power Embedded Systems)项目中对Jailhouse的介绍^2

Jailhouse能够运行裸机应用程序或者(修改的)操作系统,但一个操作系统必须是Linux,它不能在未经过修改的情况下运行操作系统(如Windows、FreeBSD),即使是在其它非root cell上运行Linux,也要经过正确的配置。

从技术角度来看,Jailhouse以固件镜像(firmware image)的形式加载,并驻留在root cell的专用内存区域中,Jailhouse的内核模块Jailhouse.ko加载固件并创建Jailhouse用户空间使用的/dev/jailhouse设备,但它不包含任何管理功能。

在这里插入图片描述


A visualization of Linux running-bare metal (a) and under the Jailhouse hypervisor (b) alongside a real-time application

2. Jailhouse 设计目的

Jailhouse是一个分区管理程序,在基于Linux的系统上创建非对称多处理器系统,这意味着它可以在一个多核硬件平台上运行除了标准Linux内核之外的裸机应用程序或非Linux操作系统。Jailhouse通过硬件辅助虚拟化确保这些cell之间的隔离。Jailhouse目的是希望尽可能减少负责建立和维护cell隔离的代码量,同时在non-root cell中运行具有高实时性、安全关键型的应用程序。(来自《Jailhouse: A Linux-based Partitioning Hypervisor》^3

一些特定领域的问题是一般Hypervisor方案不能很好解决的,其中一个领域是实时虚拟化,它经常用于工业自动化、医学、通信和高性能计算。在这些应用程序中,将整个CPU或其它内核专用于运行裸机(没有底层操作系统)的软件是满足严格截止日期要求的一种方式。虽然可以使用诸如KVM等Hypervisor实现,但是测试表明最坏情况下的延迟可能高于某些实际要求。还有一个领域——安全关键。敏感的软件系统必须经过严格的认证(遵循通用标准)甚至是形式化验证。如果希望它们运行虚拟化相关工作,Hypervisor必须将可认证和不可认证的系统隔离开,这意味着Hypervisor本身就必须小。因此,对于实时和安全领域开源Linux友好的Hypervisor还比较缺乏,这就是Jailhouse发挥作用的地方。(来自《Jailhouse》^4

3. Jailhouse 设计特点

Jailhouse 具有安全关键型设计,并考虑到了相关认证,它在 GPLv2 下也可用。Jailhoue有一个root cell概念,root cell虽然可以控制整个系统,但不能完全控制运行它的硬件。root cell运行Linux,其它cell可以运行任何支持Jailhouse的内核(操作系统),Jailhouse无法运行未经修改的内核。Jailhouse没有内置调度程序,系统中的每个core都交由对应cell使用,没有虚拟出不存在的硬件,也没有硬件仿真。内存在cells间划分,留存部分予Jailhouse。支持Jailhouse的Linux系统有一个特殊的设备(/dev/jailhouse),用于配置root cell,并加载系统至其它cell中,使用配置文件来完整描述硬件及其分区,该文件可以在X86上自动生成,但对于ARM系统必须手动编写。(来自《Linux in mixed-criticality systems》^5

GuestOS 无法共享 core,因为没有OS调度。Jailhouse 不会模拟不可用的硬件资源,并且可用的硬件资源被静态分配给单个GuestOS,以便在发生中断时操作系统之间不会发生干扰。(来自 HERCULES项目介绍^2

4. 关注 Jailhouse 的企业信息

通过使用 git log --pretty=format:"%ae" | sort | uniq 命令查看作者的邮件列表后缀,来获得关注Jailhouse的企业信息,我们发现至少有如下企业青睐Jailhouse:TI、NXP、linaro、Siemens、Intel、ARM、toshiba、huawei。

...全文
569 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

20

社区成员

发帖
与我相关
我的任务
社区描述
Jailhouse是一个Siemens 在 GPLv2 协议下发布的针对工业级应用程序的小型分区型 Hypervisor,本社区旨在提供Jailhouse相关知识分享/帮助,欢迎加入!
车载系统嵌入式硬件linux 技术论坛(原bbs) 甘肃省·兰州市
社区管理员
  • Jia ming
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

尊敬的Jailhouse社区/论坛成员:

Jailhouse Hypervisor 是一款非常优秀且广泛使用的工具,它能够帮助用户实现对虚拟机的精细化管理和便捷操作。我们相信,在这个社区/论坛上,我们能够一起分享 Jailhouse 的使用经验和技巧,相互学习和提高。

以下是一些我们希望在这个社区/论坛上看到的内容:

  1. 内容分享。您可以分享您在Jailhouse中使用到的有趣功能、技巧或者经验,以及您对Jailhouse的看法和想法等;您可以在这里谈论Jailhouse相关的技术问题,例如虚拟机管理程序的工作原理、性能优化、安全性等;您可以在这里分享Jailhouse的使用教程、脚本和插件等。
  2. 问题求助及意见建议。如果您遇到了Jailhouse相关的问题,您可以在这里寻求帮助和解决方案。
  3. 社区活动。您可以在这里组织与Jailhouse相关的活动,例如线下聚会、技术交流会等。

我们希望这个社区/论坛能够成为大家交流和学习的平台,共同推动Jailhouse技术的发展和进步。如果您有任何建议或者意见,欢迎随时联系我们 — Jiaming

谢谢!

试试用AI创作助手写篇文章吧