1.介绍

       随着物联网(IoT)的快速发展和诸如边缘计算等新兴的IoT计算范式的出现,人们普遍认为当今的实时和功能安全设备,尤其是在工业IoT和汽车场景中,安全设备正通过将多个平台组合成单个产品来实现多种功能。这一新趋势可能促使嵌入式虚拟化成为在工作负载合并,分离和成本效益方面的有前途的解决方案。但是在现如今的研究中,虚拟机监控程序(例如KVM和Xen)被设计在服务器上运行的,并且不能轻松地进行重组以满足物联网产品的实时约束的要求。同时,现有的嵌入式虚拟化解决方案通常是针对特定的物联网场景量身定制的,很难再去扩展到各种场景。
       基于以上的发展背景,这篇论文则介绍了一个代码量不多但功能丰富的用于物联网开发的管理程序,它的特点是灵活、轻巧,可扩展且开源。它通过专注于CPU和内存分区,同时可选择的将嵌入式I/O虚拟化卸载到小型用户空间设备模型里。

2.系统结构

       对于不同的物联网市场的通用嵌入式管理程序,ACRN的设计目标如下:
     1. 大:ACRN应具有丰富的功能,以支持各种物联网的应用;
     2. 小:ACRN应该在代码大小和内存占用方面轻量化,这是通过行业认证的关键;
     3. 实时:ACRN应支持实时虚拟化,以满足物联网的特定需求;
     4. 安全性:ACRN应为虚拟机中的工作负载提供隔离的环境,并确保整个系统的完整性,以防止受损的虚拟机启动;
       为了满足上面提到的设计目标,ACRN被设计为一个在裸金属硬件和固件上运行的1型虚拟机管理程序,整个系统架构如图1所示:读《ACRN: A Big Little Hypervisor for IoT Development》笔记
       目前ACRN管理程序支持三种类型的VM:服务VM、用户VM和实时VM (RTVM)。其中RTVM是一个特殊的独立用户VM,经过优化可以提供实时功能。
       首先为满足功能大,开发了一个轻量级的用户界面程序ACRN-DM,以支持多种操作系统。此外,为了灵活地虚拟化嵌入式系统中的各种设备,ACRN提供了丰富的I / O虚拟化接口。
       然后为了满足内存上的轻量化,ACRN虚拟机管理程序依赖于服务VM和ACRN-DM来管理物理硬件设备,并向用户VM和RTVM提供I / O中介。 ACRN虚拟机管理程序和VM之间的交互是通过明确定义的可移植虚拟机调用实现的。对于虚拟高级可编程中断控制器(vAPIC)等性能至关重要的设备,ACRN在虚拟机管理程序中实现它们以实现快速响应。为了消除实现的复杂性,ACRN利用了硬件虚拟化支持实现虚拟化功能。
       其次为了满足其实时性,ACRN支持特殊的隔离用户VM RTVM,其在启动时使用最少的模拟设备,并且仅在运行时访问专用的直通设备以执行实时任务。
       最后为了满足安全性,ACRN支持经过验证的引导过程,并利用硬件支持(例如英特尔平台上的聚合安全和管理引擎(CSME))作为信任的硬件根。验证的引导过程从硬件CSME开始,然后是本机固件,ACRN虚拟机管理程序和服务VM。

3.设计与实现

3.1 空间隔离

       空间隔离确保vm只能访问分配给它们的硬件资源,如寄存器和内存。此功能是嵌入式虚拟化的基础。ACRN主要通过CPU内核和内存分区提供空间隔离,以满足物联网使用的隔离需求。图2显示了一个带有用户VM和RTVM的示例:
读《ACRN: A Big Little Hypervisor for IoT Development》笔记

3.2 时间隔离

       时间隔离的目的是确保在具有不同关键性的VM之间正确分配CPU时间。 除了为每个VM分配专用的CPU内核外,ACRN虚拟机管理程序还需要确保I / O访问和中断以正确的虚拟机优先级进行调度。图3展示了ACRN的I / O处理流程:
读《ACRN: A Big Little Hypervisor for IoT Development》笔记
       ACRN处理服务VM、用户VM和实时VM的I/O流方式不同,对于服务VM,ACRN仅捕获其对中断设备的访问,并让其他I / O访问直接进入物理设备。对于用户VM,除了直通设备外,ACRN会为I / O虚拟化捕获所有其他I / O访问,因为所有用户VM共享相同的硬件平台。通过维护ACRN范围内的优先级列表,ACRN管理程序可以查询并选择适当的I / O请求进行分发。这样,ACRN可以确保可以尽快安排高优先级的I / O请求。对于实时VM,默认情况下,ACRN不需要在运行时捕获任何I / O访问,因为所有设备的RTVM访问都是直通设备。

3.3丰富的嵌入式I / O虚拟化

       嵌入式I / O虚拟化与传统服务器I / O虚拟化在几个方面不同。首先,一些要虚拟化的嵌入式I / O设备对嵌入式世界至关重要,但在服务器世界中并不常见。其次,与服务器领域的标准和高级硬件支持不同,嵌入式平台通常具有通用性,有时受到硬件支持的限制。再者,嵌入式世界中的典型用法是在特定的硬件资源上为特定的功能运行特定的工作负载,因此与资源迁移和过量使用(例如VM迁移和内存过量使用)相比,资源直通和分区更可取。

3.4 实时

       ACRN中的RTVM是一种特殊的隔离用户VM,以优化以追求实时性能。其中为了优化运行时实时性能,RTVM被设计用于在访问由管理程序传递的专用硬件资源, 这种方式的一个主要优点是可以完全消除VMExit。 因此,为了适应上述RTVM要求,可以将RT-OS修改为仅在运行时访问专用硬件资源。 例如,不建议使用传统中断和IOAPIC,而是建议RT-OS仅使用MSI / MSIx。

3.5 安全

       目前ACRN的目标是两个主要的安全特性,验证引导和可信执行环境(TEE)。

4.结论

       本文介绍了一种用于物联网开发的嵌入式虚拟机监控程序ACRN。 ACRN依靠其实时性和关键安全性,为各行各业的人们提供了参考设计框架,尤其对物联网领域的帮助最大。

相关文章: