20
社区成员
2023.01.24,Jailhouse迎来了它10周年生日,以下是Jan在邮件列表中的总结邮件。
离Jailhouse最初发布已经有很长一段时间了。我也老了很多,很难准确地回忆出当时写下第一行Jailhouse代码时的情景了。大概在一周前,我在代码仓库中注意到Jailhouse源于2013.01.23,所以是时候在十周年之际做出总结了。
Jailhouse概念诞生于和同事的一次激烈讨论,我们探讨了构建一个和现有软件组件代码依赖度较高的hypervisor是否是未来最好的发展路线。他们的建议是,一旦能有一个简单的分区Hypervisor,那么就能成功地构建混合关键系统。并且,将软件组件局限在分区管理程序中能够尽可能地缩小安全认证工作的范围并减小工作负担。在调研了KVM相关的案例后,我怀疑是否有必要新建一个管理程序,尽管如此,也需要进一步与更多的专家进行公开探讨。总之,我们需要探索一种新的安全关键系统构建方法。
首先,我想到的是“缩小”KVM以已达成目的,毕竟,这是一个成熟可用的方案。但我意识到这么做限制可能会很多,所以我想能不能从头尝试一点新东西:比如在运行阶段激活管理程序。这个想法在我脑海里构思了几个月之久后,我才写下了Jailhouse的第一行代码。
我也是首次深入的了解KVM,并在KVM上实现看到的安全相关用例,围绕着嵌套虚拟化技术。在这期间,我们收获到了很多debug的快乐。
大约在2.10,我们在KVM中首次成功实现了vmlaunch功能,只有你亲身体验过才知道是多么的不容易,我们是多么的开心。在3.10,首个inmate成功运行,就是著名的apic-demo,但这仍然是业余项目。在3.20,我在我的笔记本电脑上添加了对KVM启动的支持,从KVM到真实的CPU过程中,发生了什么?实际上是对CR0的微小调整而已。
当实现了具体用例之后,我去找了我的老板,并分享了我的想法,我向他建议开源代码以发展这个创建safety系统的新思路,并询问了他的意见。
长话短说,非正式的同意答复来的很快,正式的通告还需要一段时间,我们决定在2013年KVM论坛上演示我们的Jailhouse用例。
到目前为止,我们还未发布正式版本。在这里我甚至没有谈论过去10年我们在安全、软件和硬件方面学到的东西,我认为1310行的Jailhouse补丁并不重要,而是贡献者们所做的贡献更加重要,你们添加了另外两个架构,此外,我们将在数十个不同的目标平台上实现Jailhouse,以保持它的活力,谢谢大家!