原创 《嵌入式虚拟化技术与应用:ACRN开源项目实践》+心得体验

2024-1-2 23:32 1095 4 4 分类: MCU/ 嵌入式
非常荣欣参加了这次《嵌入式虚拟化技术与应用:ACRN开源项目实践》试读体验活动,同时非常感谢面包板论坛举办此活动。本书印刷还是非常新颖,具有精美漫画。下图为图书正面和反面。

嵌入式系统与虚拟化技术似乎是两个独立的技术领域,没有交集。但随着物联网设备的爆炸式增长和万物互联应用的快速发展,嵌入式虚拟化技术这个跨界创新组合应运而生,也越来越受到业界的关注和重视。本书将主要回答两个问题:为什么嵌入式系统需要虚拟化技术?如何在资源受限的嵌入式系统上实现虚拟化技术?

为什么嵌入式系统需要虚拟化技术?

因为虚拟化技术已经来到了下一个风口——万物互联时代的虚拟化!

先从虚拟化技术的发展历史说起。虚拟化技术得益于分时操作系统和PC的蓬勃发展,现代虚拟化技术已经有了20多年的发展历史。而真正催生虚拟化技术快速部署和发展的是云时代春天的到来。开源虚拟化技术和Linux催生了基础设施即服务(Infrastructure as a Service,IaaS),开启了云计算时代的新篇章。虚拟机可以作为服务,提供一系列独特优势,例如弹性资源共享、快速部署、廉价方便、集中式IT管理等。这个起始于大型电商的内部技术革新,迅速成长为一种公共服务,构成了云计算时代的基础。云计算技术的发展使得作为标准化产品的虚拟机作为服务走入寻常百姓家。目前各大云服务厂商都不约而同地切换到基于KVM技术的云架构上,并发展出各种各样的应用技术。

进入新世纪后,计算机领域出现了另一个新的虚拟化应用场景——万物互联,进一步促进了虚拟化技术的应用落地和发展。万物互联是把百亿级别的嵌入式设备整合在一起,并通过云连接起来。虚拟化技术因此在嵌入式领域得到广泛的应用,以此整合各种单一功能设备,通过共同的网络接口接入互联网,构建更加高效、低成本的万物互联系统。这也是实现工业4.0的必由之路。

促使嵌入式设备支持虚拟化技术的原因有如下几点。第一,随着半导体技术的发展,摩尔定律推动硬件的性能提升,成本下降。今天的嵌入式SoC的性能甚至可能超过了昨天的服务器。第二,无处不在的CPU多核技术的发展自然地能够支持多个系统。第三是业务的负载整合、数字化互联的需求。出于节约成本考虑,系统整合并重用已有的软件系统,降低移植工作量,减少硬件系统的互连,降低整体硬件系统的复杂度,可以把多个异构的操作系统和业务整合在一套硬件系统上。这些都需要虚拟化技术在嵌入式设备上的支持。

如何在资源受限的嵌入式系统上实现虚拟化?

“云”虚拟化和“物”虚拟化两种技术虽然同根同源,但是嵌入式虚拟化技术和传统虚拟化技术还是有很多不同的地方,例如应用场景和目标定位不同、可用的资源多寡不同、支持的物理硬件设备和外设不同、软件发布的模式不同、各自的生态系统不同。为此,本书专门选择了 Linux开源基金会下支持 Intel x86平台的开源嵌入式虚拟机管理程序 ACRN进行架构剖析和代码实现的解读。主要原因有两点。第一,在嵌入式虚拟机市场上大多都是闭源的商用软件,以支持Arm平台为主,开源的、专门为嵌入式设备设计的虚拟机在市面上并不多见。第二,ACRN具有如下特点:在x86平台上支持实时操作系统;小尺寸,额外开销小;能通过工业IEC61508功能安全认证;具有BSD3.0友好的许可证,完全开源。

全书结构

本书的逻辑主线是按照如下思路来组织的:为什么需要嵌入式虚拟化技术→如何实现嵌入式虚拟化→嵌入式虚拟化和主流的云虚拟化在实现上有何不同→嵌入式虚拟化技术在哪些领域可以带来价值。各章具体内容简介如下。

1章主要介绍虚拟化技术的发展历史、虚拟机的三种模型、虚拟化技术的分类,并分析当前嵌入式虚拟化技术所面临的发展和挑战。

2章介绍虚拟化技术的通用概念,并描述处理器虚拟化、内存虚拟化和1/O虚拟化的实现,比较“云”虚拟化和“物”虚拟化,以及嵌入式虚拟化技术的特征和必要性。

3章主要介绍在服务器领域广泛使用的KVM的基本原理,并探讨其与嵌入式领域虚拟化技术的不同之处。通过实现一个极简版的用户态VMM,进而描述KVM的主要功能实现:CPU虚拟化、内存虚拟化、中断虚拟化和设备虚拟化。

4章介绍一个Linux基金会下的专门为资源受限的嵌入式设备而设计的虚拟机ACRN。它尺寸小,额外开销小,专门为实时系统进行了设计和优化,同时具有完全开源、友好的许可证。该章将深入介绍ACRN嵌入式虚拟机的具体实现,包括CPU虚拟化、内存虚拟化、中断虚拟化和I/O虚拟化的框架支持,并提供设计框图及部分流程图。

5章继续介绍ACRN中的设备虚拟化。丰富的I/O设备虚拟化支持是ACRN的另一个优势,也是专门为嵌入式系统而设计实现的。

6章主要介绍ACRN系统的使用和环境搭建过程,并配有完整的安装部署入门指南,方便读者了解和具体操作ACRN

7章介绍嵌入式虚拟机如何能够支持实时性,以及如何做到性能调优,并结合Intel硬件平台和ACRN虚拟机介绍几种常用的实时优化思路及工具。

8章介绍嵌入式实时操作系统。虽然本书主要介绍嵌入式虚拟机,但是也需要对运行在Hypervisor之上的嵌入式操作系统进行介绍,因为两者需要配合在一起才能实现业务应用程序的实时性能。ACRN是在x86硬件平台上实现的,所以该章主要介绍三个比较流行的x86平台上的开源实时操作系统。

ACRN是第一个能够通过功能安全认证的开源的虚拟机Hypervisor。第9章主要从流程和技术两方面来分享ACRN的功能安全的工程实践。

10章介绍智能数控系统和数字孪生的实现。借助虚拟化技术来实现智能数控系统,可以把传统数控系统设备端侧的各个分离的单独控制器整合到同一平台上,还可以通过数字孪生技术在云中构建设备的数字实例。

11章介绍如何使用虚拟化技术进行工作负载整合。通过把机器视觉和机器控制整合在一个物理硬件平台上运行,可以使工业设备装上“眼睛”和“手臂”,既可以看到需要识别的物品,又可以使用机器控制执行相应的操作。

12章主要介绍如何通过虚拟化方案使移动机器人、复合机器人的设计变得更从容,同时可以从控制器的体积、成本、功耗、性能、安全等角度满足机器人开发所需,为多样化的上层应用打好基础。

13章介绍虚拟化技术在智能驾驶舱中的解决方案。通过虚拟化技术,数字仪表盘系统及车载娱乐系统现在可以同时运行在一颗SoC处理器上,从而降低整机成本和平台的集成复杂性。

如何阅读本书

本书大体上介绍了5部分技术内容,读者可以针对自己的兴趣点来阅读。

希望了解虚拟化技术基础知识的读者,可以阅读第12章。

希望了解服务器上常用的KVM虚拟机实现的读者,可以阅读第3章。

希望了解如何实现一个完整的入式虑拟机的该者,可以阅谈第46章。

希望了解如何进行实时性能调优的读者,可以阅读第7章。

希望了解常用x86平台的开源实时操作系统的读者,可以阅读第8章。

希望了解功能安全认证的读者,可以阅读第9章。

希望了解嵌入式虚拟机的应用场景和实际案例的读者,可以阅读第10~13章。

目标读者

在某种程度上可以将嵌入式系统的虚拟化技术看作一门跨领域的交叉技术。虚拟化技术本身涉及操作系统、计算机体系结构等领域知识。当把虚拟化技术“嫁接”到嵌入式系统上时,除了虚拟化技术背景之外,工作人员还必须具有良好的嵌入式系统设计经验。Hyper-visor要运行在资源受限的硬件平台上,性能调优又必须是整机系统(硬件+虚拟机+实时操作系统+应用程序)的调优,所以工作人员还需要一些“螺蛳壳里做道场”的系统调优能力。

另外,本书并没有定位成一本纯理论的学术书籍,而是一本综合了虚拟化原理知识和技术实践的图书。本书定位的读者包括:

·从事嵌入式虚拟化领域开发的研发人员或专业技术人员。

·从事嵌入式系统开发,但是对虚拟化技术感兴趣的研发人员。

·从事虚拟化领域开发,但是希望扩展到嵌入式领域的研发人员。

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条