论文阅读之ACRN:物联网开发的大型小管理程序《ACRN: A Big Little Hypervisor for IoT Development》

 

目录

1.摘要

2.系统架构

3. 设计和实施

3.1空间隔离(Spatial Isolation)

3.2暂时隔离(Temporal Isolation)

3.3丰富的嵌入式I / O虚拟化(Rich Embedded I/O Virtualization)

3.4 实时(Real-Time)

3.5 安全(Security)

4.总结


1.摘要

随着物联网(IoT)的快速增长和诸如边缘计算等新兴的IoT计算范例,普遍看到当今的实时和功能安全设备,尤其是工业IoT和汽车场景中的安全设备通过将多个平台组合为一个产品来实现功能。这一新趋势可能促使嵌入式虚拟化在工作负载合并,分离和成本效益方面成为有前途的解决方案。但是,管理程序(例如KVM和Xen)被设计为在服务器上运行,并且不能轻松地进行重组以满足诸如IoT产品的实时约束之类的要求。同时,现有的嵌入式虚拟化解决方案通常是针对特定的物联网场景量身定制的,这使得它们很难扩展到各种场景。此外,大多数商业解决方案虽然成熟且有吸引力,但价格昂贵且封闭源代码。本文介绍了ACRN,这是一种用于物联网开发的灵活,轻巧,可扩展的开源嵌入式管理程序。通过专注于CPU和内存分区,同时可选地将嵌入式I / O虚拟化卸载到小型用户空间设备模型,ACRN提出了一个同时满足实时和通用需求的整合系统。通过采用客户友好的宽松BSD许可证,ACRN提供了立即可用的实用的工业级解决方案。

2.系统架构

针对针对各种物联网细分市场的通用嵌入式管理程序,ACRN的设计目标如下:

  1.  大:ACRN应具有丰富的功能,以支持各种物联网使用;

  2.  小:ACRN在代码大小和内存占用方面应该是轻量级的,这对于通过工业认证至关重要;

  3.  实时:ACRN应支持实时虚拟化,以满足物联网的具体需求;

  4.  安全性:ACRN应为VM中的工作负载提供隔离环境,并确保全系统的完整性,以防止受损的VM启动;

为了满足上述设计目标,ACRN被设计为在裸机硬件和固件之上运行的Type-1虚拟机管理程序,总体系统架构如图1所示。目前,ACRN虚拟机管理程序支持三种类型的VM, 服务VM,用户VM和实时VM(RTVM)。 相应地,我们将RTOS或在其中运行的OS命名为Service OS(SOS),User OS(UOS)和实时OS(RT-OS)。 与Xen的Dom0相似,服务VM是一个控制VM,其中托管了本地设备驱动程序和ACRN DM。 用户VM是托管各种操作系统(例如Linux,Android,Windows等)的应用程序VM。 RTVM是一种特殊的隔离用户VM,经过优化可提供实时功能。

论文阅读之ACRN:物联网开发的大型小管理程序《ACRN: A Big Little Hypervisor for IoT Development》

为了提供“大型”功能,开发了一个轻量级的用户界面程序ACRN DM,以支持包括Linux,Android,Windows等在内的各种OS。此外,为了灵活地虚拟化嵌入式系统中的各种设备,ACRN提供了丰富的I / O虚拟化接口,包括virtio,完整仿真,中介直通,直通等等。

为了实现“小”尺寸并因此易于获得工业认证,ACRN虚拟机管理程序依靠服务VM和ACRN DM来管理物理硬件设备并向用户VM和RTVM提供I / O中介。 ACRN虚拟机管理程序和VM之间的交互是通过明确定义的便携式超级调用实现的。对于像虚拟高级可编程中断控制器(vAPIC)这样的性能至关重要的设备,ACRN在虚拟机管理程序中实现了它们,以实现快速响应。为了消除实施的复杂性,ACRN利用了硬件虚拟化支持,例如Intel VT,以实现虚拟化功能。为避免使用半虚拟化功能重组服务OS的复杂性,与Xen对待dom0和domU的方式不同,ACRN将服务VM以及用户VM和RTVM一起特权化为Intel VT中的VMX非根操作模式,以便可以虚拟化所有VM同样,这使得ACRN的代码大小很小。通过以上策略,ACRN管理程序既简单又轻巧。

为了支持实时虚拟化,ACRN支持特殊的隔离用户VM RTVM,以保证VM中应用程序的实时性能。 RTVM打算在引导时使用最少的模拟设备,并且仅在运行时访问专用的直通设备以执行实时任务。 RTVM实现了用于实时虚拟化的“无VMExit-less”解决方案,这对于IoT特定用途至关重要。为了为VM中的工作负载提供隔离的环境,ACRN为Linux和Android VM等用户VM选择性地支持安全世界和普通世界。通过提供一些与世界有关的超级呼叫,ACRN可以创建特权安全世界并在安全世界和普通世界之间切换。

为了确保系统范围的安全性,ACRN支持经过验证的引导过程,并利用硬件支持(例如英特尔平台上的融合安全性和管理引擎(CSME))作为信任的硬件根。经过验证的引导过程从硬件CSME开始,然后是本机固件,ACRN虚拟机管理程序和服务VM。此外,ACRN将验证的引导过程从虚拟固件,UOS / RT-OS和应用程序扩展到每个用户VM和RTVM。

3. 设计和实施

本节描述了ACRN是如何通过嵌入式虚拟化技术实现空间和时间隔离的,接下来介绍 ACRN丰富的I/O虚拟化接口,其次是ACRN的实时支持和优化。 此外,还解释了ACRN的安全特性。

3.1空间隔离(Spatial Isolation

空间隔离是虚拟化的一个重要特性,它确保vm只能访问分配给它们的硬件资源,如寄存器和内存。此功能是嵌入式虚拟化的基础,因为它允许物联网设备安全地收集和处理敏感用户数据,而不必担心其他恶意或受损的虚拟机可能会检查隐私数据。ACRN主要通过CPU内核和内存分区提供空间隔离,以满足物联网使用的隔离需求。图2显示了一个具有用户VM和RTVM的示例,并且两者的内存都分配在SOS的不同高内存区域中。 由于通过修改SOS内核从SOS的E820表中删除了虚拟机管理程序映射,因此虚拟机管理程序区域位于SOS的低内存区域中。

论文阅读之ACRN:物联网开发的大型小管理程序《ACRN: A Big Little Hypervisor for IoT Development》

3.2暂时隔离(Temporal Isolation)

暂时隔离的目的是确保在具有不同关键性的VM之间正确分配CPU时间。 为此,除了为每个VM分配专用的CPU内核外,ACRN虚拟机管理程序还需要确保以正确的VM优先级计划I / O访问和中断。图3展示了ACRN的I / O处理流程,它表明ACRN对服务VM,用户VM和RTVM的I / O流进行了不同的处理。

论文阅读之ACRN:物联网开发的大型小管理程序《ACRN: A Big Little Hypervisor for IoT Development》

对于服务VM,ACRN仅捕获其对中断设备的访问,如步骤1-3所示,并让其他I / O访问直接进入物理设备,如图中的虚线箭头所示。中断设备包括可编程中断控制器(PIC),I / O高级可编程中断控制器(IOAPIC)和本地高级可编程中断控制器(LAPIC)。为服务VM和用户VM虚拟化中断设备的好处是,每个VM可以任意配置虚拟中断设备,而不必担心中断向量冲突。此外,所有虚拟中断设备都在虚拟机管理程序中进行仿真,以实现快速响应。
         对于用户VM,除了直通设备外,ACRN会为I / O虚拟化捕获所有其他I / O访问,因为所有用户VM共享相同的硬件平台。通过步骤1-3,将I / O访问转发到管理程序内虚拟中断设备,或者通过步骤3-5,将I / O访问转发到SOS中的ACRN DM。为了触发ACRN DM中的I / O虚拟化逻辑,虚拟机管理程序将创建一个I / O请求,并将其发送到“ Virtio和虚拟机管理程序服务模块(VHM)”中的I / O调度程序,该模块是提供远程服务的SOS内核模块。内存映射API,通过虚拟IRQ。为了调度用户VM的I / O访问,ACRN支持虚拟机管理程序和SOS VHM中的优先I / O分发机制。通过维护ACRN范围内的优先级列表,ACRN管理程序可以查询并选择适当的I / O请求进行分发。这样,ACRN可以确保可以尽快安排高优先级的I / O请求。对于RTVM,默认情况下,ACRN不需要在运行时捕获任何I / O访问,因为所有设备的RTVM访问都是直通设备。 如图4所示,ACRN以不同的方式处理服务VM、用户VM和RTVM的中断传递。

论文阅读之ACRN:物联网开发的大型小管理程序《ACRN: A Big Little Hypervisor for IoT Development》

3.3丰富的嵌入式I / O虚拟化(Rich Embedded I/O Virtualization)

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

3.4 实时(Real-Time)

ACRN中的RTVM是一种特殊的隔离用户VM,已优化以追求实时性能。 与运行诸如Linux之类的商用OS的常规用户VM相比,RTVM具有几个独特的优化。

为了优化运行时实时性能,RTVM旨在访问由管理程序传递的专用硬件资源,以避免SOS引入的额外延迟和不确定的时序,SOS在通过硬件资源共享为用户VM提供服务方面起着关键作用 。 专用的硬件设备包括LAPIC,磁盘,网络等。 这种方式的一个主要优点是可以完全消除VMExit。 因此,为了适应上述RTVM要求,可以将RT-OS修改为仅在运行时访问专用硬件资源。 例如,不建议使用传统中断和IOAPIC,而是建议RT-OS仅使用MSI / MSIx。

3.5 安全(Security

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

4.总结

本文介绍了ACRN,这是一种用于物联网开发的嵌入式虚拟机监控程序。 通过提供灵活,轻便,实时和可扩展的设计,ACRN提供了立即可用的实用的工业级解决方案。 在本文中,详细介绍了ACRN的关键组件的设计和实现,评估结果显示了ACRN作为通用嵌入式虚拟化解决方案的有效性。