购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

为什么要写这本书

嵌入式Hypervisor一直被认为是嵌入式系统软件的下一个前沿领域。随着复杂应用场景的日益增多,如何有效利用嵌入式系统的有限资源成为新的挑战,而嵌入式Hypervisor成为应对该挑战的关键。嵌入式系统的高性能、低功耗一直是航空、车载、轨道交通以及核电等领域的迫切需求,这也推动了单核处理器计算性能的提高和多核处理器的引入。与此同时,处理器芯片供应商对CPU(Central Processing Unit,中央处理器)虚拟化扩展的支持进一步推动了嵌入式系统中虚拟化技术的应用。而嵌入式Hypervisor提供了在同一单核/多核处理器上承载异构操作系统的灵活性,具有良好的可靠性和故障控制机制,可保证关键任务、硬实时应用程序和一般用途、不受信任的非关键应用程序之间的安全分离。因此,基于嵌入式Hypervisor的异构系统平台将是未来嵌入式系统软件的发展方向。

虽然嵌入式Hypervisor已经在诸多领域得到了广泛的应用,然而专门分析嵌入式Hypervisor的书籍非常匮乏。本书采用分离内核(Separation Kernel,SK)架构,结合原型系统PRTOS(Partition RTOS,分区RTOS)Hypervisor,详细剖析嵌入式Hypervisor的设计与实现技术,进而分析嵌入式Hypervisor对RTOS(Real Time Operating System,实时操作系统)、Linux的虚拟化支持,以便读者对基于嵌入式Hypervisor搭建的异构操作系统开放平台的生态优势有更为深刻的理解。

嵌入式Hypervisor并非可望而不可即,是可以落地实现并发挥重要经济价值的技术。希望本书能抛砖引玉,帮助读者更好地理解嵌入式Hypervisor的实现技术,并为国产嵌入式Hypervisor的发展贡献一份力量。

读者对象

❑高可靠操作系统的研发人员

❑嵌入式系统和应用的开发人员

❑嵌入式系统爱好者及科研院所的研究人员

如何阅读本书

本书共15章,从逻辑上分为三部分。

第一部分(第1~2章)介绍Hypervisor基础。

第1章 介绍虚拟化技术的基本知识,包括虚拟化技术与实现、面向桌面和企业云的Hypervisor类型和产品、嵌入式Hypervisor基础知识以及主流的产品。

第2章 详细对比两种嵌入式Hypervisor(基于分离内核的Hypervisor和基于RTOS扩展的Hypervisor)的实现方式,并引出本书将要介绍的PRTOS Hypervisor。

第二部分(第3~12章)介绍嵌入式Hypervisor的设计与实现。

第3章 详细介绍PRTOS的架构,使读者了解PRTOS架构和各个核心组件的功能。

第4章 介绍PRTOS中断模型、中断虚拟化实现和BAIL(Bare-metal Application Interface Library,裸机应用接口库),使读者理解为何中断模型可以实现不同虚拟机之间的中断隔离以及BAIL为何可以对PRTOS的各个组件进行功能性验证。

第5章 介绍PRTOS内存隔离技术。学习完本章,读者将会理解该技术如何使得同一物理机上运行的多个虚拟机具有独立的内存空间,以确保虚拟机之间的空间隔离性。

第6章 介绍PRTOS的调度器设计。学习完本章,读者将会理解PRTOS如何支持单核/多核处理器硬件平台以及PRTOS如何对单vCPU(virtual CPU,虚拟CPU)分区和多vCPU分区实现统一调度,以确保虚拟机之间的时间隔离性。

第7章 介绍健康监控的实现机制。学习完本章,读者将会理解健康监控如何用于监视硬件、分区级应用和PRTOS内核的状态以及健康监控如何在故障发生的时候尽量地解决故障或者隔离故障,以阻止故障进一步危害整个Hypervisor系统。

第8章 介绍PRTOS中实现的分区间通信技术。学习完本章,读者将会理解PRTOS中实现的两类分区间通信技术和共享内存通信。

第9章 介绍PRTOS内核资源管理模型。学习完本章,读者将会理解PRTOS如何通过一组基于对象的统一接口对内核中的资源进行管理。

第10章 阐述PRTOS内核和分区的初始化过程,包括PRTOS内核的初始化如何做到支持单核/多核处理器硬件平台,分区的初始化如何做到支持单vCPU分区和多vCPU分区。

第11章 介绍PRTOS提供的超级调用服务以及PRTOS内核的设计原则。学习完本章,读者将会理解PRTOS如何综合考虑安全性、实时性、可靠性和灵活性等因素,以便设计出高效可靠的嵌入式Hypervisor。

第12章 介绍用于支持开发、部署和管理PRTOS系统的平台辅助工具。学习完本章,读者将会了解维护这些工具为何会简化PRTOS内核源码的复杂度,使得PRTOS内核保持在一个相对较小的规模,为PRTOS内核组件的完整性检验提供条件,并增强系统的安全性。

第三部分(第13~15章)介绍嵌入式Hypervisor的高级应用和未来规划。

第13章 详细阐述μC/OS-Ⅱ的虚拟化过程。学习完本章,读者将会了解μC/OS-Ⅱ的虚拟化过程,并验证PRTOS对客户实时系统的支持能力。

第14章 介绍Linux内核的虚拟化过程。学习完本章,读者将会了解Linux内核的虚拟化过程,理解适配Linux的好处:一方面可以扩展PRTOS的应用领域;另一方面可以验证PRTOS对开源GPOS(General Purpose Operating System,通用操作系统)的支持能力。

第15章 阐述PRTOS Hypervisor的平台支持情况、未来其他平台的支持计划,并介绍PRTOS源码的开发模式以及PRTOS Hypervisor的愿景。

读者可以根据自己的兴趣及需要选择阅读相关章节。建议读者首先阅读第1章和第2章,以便对嵌入式Hypervisor有一个全面的了解,然后参考X86平台操作手册搭建PRTOS开发环境和QEMU(Quick EMUlator,快速模拟器)运行环境,通过在QEMU上运行BAIL示例和客户操作系统示例对PRTOS Hypervisor有一个感性的认识。

建议读者在阅读本书的过程中随时参考PRTOS源码。如果读者想参与PRTOS Hypervisor社区建设,为维护PRTOS Hypervisor代码贡献一份力量,欢迎发邮件到info@prtos.org提出加入申请。

勘误和支持

由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎访问https://github.com/prtos-project/prtos-hypervisor/issues进行讨论,也可以发邮件到info@prtos.org。期待得到你的反馈,让我们在技术之路上互勉共进。

致谢

感谢我的朋友李建国、商凌、王逸含、夏伟,他们在本书的内容规划与写作上提供了宝贵的意见和建议,使整个创作过程更加充实和愉悦。

特别感谢我的爱人,没有她的全方位支持,我很难有时间和精力完成稿件和相关代码的测试工作。

最后,感谢所有曾经支持、鼓励过我的师友,他们是我人生道路上不可或缺的一部分。

谨以此书献给共同追寻自主创新研发的软件工程师们,献给支持我、鼓励我的亲人们和朋友们,我将在科技强国征途中不懈探索、不断前行!

孙陈伟 QBdHit5quVEXo+BI90L+tJyNtrj8BXMsUrfDogYxX/4kgOmS0S64z9CGJUsjlOvr

点击中间区域
呼出菜单
上一章
目录
下一章
×