【Jailhouse 文章】Base Architectures for virtual-physical computing(2018)

网友投稿 1139 2022-10-25

【Jailhouse 文章】Base Architectures for virtual-physical computing(2018)

【Jailhouse 文章】Base Architectures for virtual-physical computing(2018)

文章目录

​​1. Introduction​​​​2. Mixed-Criticality Base Architectures​​

​​2.1 Problem Description​​​​2.2 Architecture​​​​2.3 Conclusion​​

​​3. 基于测量的实时量化和隔离保证​​

​​3.1 Overview​​​​3.2 Measurements​​​​3.3 Evaluation and Conclusion​​

Report: 该项目已根据第 783163 号赠款协议获得 ECSEL 联合承诺的资助。JU 获得了欧盟 Horizon 2020 研究和创新计划的支持。它由财团成员共同资助,来自奥地利、德国、比利时、意大利、西班牙和罗马尼亚的赠款。

1. Introduction

我们专注于构建新颖的系统架构,这些架构结合了标准 IT 基础系统,这些系统提供了以用户为中心的标准系统中存在的广泛功能和特性,并且能够执行受信任、经过认证和验证的工业操作系统或 在标准硬件上并行执行诸如机器人控制和信号处理工作负载之类的计算任务。

2. Mixed-Criticality Base Architectures

2.1 Problem Description

实时性和安全属性不能够通过开发过程的最终结果保证,需要关注整个工程生命周期的开发过程。

2.2 Architecture

为了成本效益,许多工业应用程序不能放弃其系统中 Linux 丰富的功能,但 Linux 难以实现安全或其他认证要求也是不得不面对的问题。我们的架构方法满足了这些需求。如图显示了 Jailhouse 如何将四核嵌入式系统划分为多个不相交的部分,红线表示硬件虚拟化机制强制执行的安全关键的边界,只有当负载代码发出非法资源请求时才需要管理程序干预。

多核 CPU 是许多现代嵌入式工业系统中的标准组件,他们的虚拟化扩展可以实现服务的隔离,并在实现混合关键性或其他拆分系统方面获得普及。我们的方法 Jailhouse,一个基于 Linux 的、与操作系统无关的分区管理程序,它使用新颖的架构方法将 Linux(一个强大的通用系统)与严格隔离的专用组件相结合。我们的设计目标倾向于简单而不是功能,建立最小的代码库,并最大限度地减少管理程序活动。

尽管多核 CPU 无处不在,但安全关键和非关键产品的制造商仍然倾向于将具有不同关键级别的组件拆分为单独的硬件单元,在这种传统的混合临界环境中,单个逻辑控制任务强烈地绑定到专用的物理控制单元,将这些系统整合到单个硬件单元是一种架构趋势,它不仅可以提高大量且不断增长的软件的可维护性,还可以降低整体硬件成本。如图说明了 Jailhouse 管理程序的引导顺序。该系统需要一个完整设置的 Linux 系统,这种不寻常的序列节省了现代系统复杂启动所需的数十万行代码,并使我们能够将认证工作集中在不到 10,000 行代码上。这种安全关键性“攻击面”的大幅减少是将计算密集型任务(如大数据挖掘或基于人工智能的处理)与工业控制任务集成在同一硬件上的先决条件。

将硬件直接分配给来宾,以及延迟初始化,将任何复杂的硬件处理和引导问题从管理程序转移到通用操作系统,管理程序建立隔离域,直接访问物理资源,无需仿真或半虚拟化(参见图)。这在可忽略的系统开销的情况下保留了 Linux 在非关键部分的丰富功能,而节俭的安全性和实时关键工作负载在隔离的安全域中执行。

Jailhouse 的简约设计方法产生了可管理数量的源代码行 (SLOC),这对于学术角度的形式验证和工业角度的系统认证都是至关重要的因素。

Jailhouse 故意不遵循经典的虚拟化方法,这开启了将 Jailhouse 用作实验系统平台的可能性,该平台允许将注意力集中在实际问题上,而不是从头开始重新实现基础。Jailhouse 是调查 AMP 工作负载下的硬件和软件行为的理想平台。此外,它为在原始硬件上执行类似数字信号处理 (DSP) 的工作负载提供了一个方便舒适的环境。

2.3 Conclusion

静态分区管理程序技术是一种用于嵌入式实时虚拟化的有前途的方法,因为他们最大限度地减少与客户交互的最终目标将典型的半虚拟化方法引入的所有问题推迟到客户的操作系统。

与半虚拟化技术相比,直接将硬件分配给 Guest 允许运行未经修改的传统有效负载应用程序,而没有活动的管理程序开销。极简的虚拟机管理程序核心简化了认证工作。通过以访客身份执行标准操作系统,我们还最大限度地减少了移植现有传统有效负载应用程序所需的工作量。通过实现一个复杂的演示平台,我们成功地展示了硬件分区的实用性。

虽然当前硬件提供的标准虚拟化扩展似乎足以直接实现我们和许多其他方法,但实际硬件存在许多限制,这些限制可能完全破坏基于分区和虚拟化的方法的优势和保证。

3. 基于测量的实时量化和隔离保证

3.1 Overview

对现实世界系统的一个重要工业要求是必须能够保证计算域内保持确定性以及分区域之间的隔离性[4, 8]。

不仅在分区或虚拟化系统上,而且在常规调度系统上,潜在跨域干扰的表面由不同计算域之间的交互程度决定。这包括任务、任务和操作系统、操作系统和底层管理程序之间的交互,以及系统低级固件的干扰。我们描述了相当多的测量并提供了三个典型的微基准并比较了不同的平台:ARM 平台上的管理程序引起的中断延迟、x86 平台中断控制器的 ICR 寄存器的调节以及 Spectre 缓解对虚拟化系统。这是依赖于工作负载的管理程序活动的三个来源,因此是管理程序噪音的三个来源。

3.2 Measurements

以下简要概述了潜在的干扰和噪声源。需要注意的是,基准测试并不衡量管理程序的开销,而是衡量管理程序在特定硬件平台上运行时的开销。尽管如此,这些测量结果使我们能够得出虚拟机管理程序性能的趋势,确定与半导体制造中的实时控制过程相关的延迟,这可能涉及低至 10-100 微秒的反应和循环时间,这要求我们观察到比通常低得多的吞吐量性能水平的系统延迟测量。我们发现有几个因素是延误的重要来源:

● 管理程序的一个典型基准是超级调用的成本,因为超级调用通常用于实现设备的半虚拟化。在 Jailhouse 的情况下,不需要考虑超级调用,因为它们仅用于单元管理目的,并且永远不会在运行状态或热路径中发生。

● Jailhouse AMP 系统。不同的 Guest 异步访问内存,内存或 I/O 访问可能由硬件序列化,尽管在受支持的架构上不会发生饥饿,但内存或 I/O 总线的大量使用可能会导致 Guest 显著性能的降低,虽然这个问题在 SMP 应用程序中是众所周知的,但在异步执行为单核平台设计的多个有效负载时,必须评估其影响。

● 例如,在 x86 架构上,VT-d 允许将 MSI-X 中断直接无陷阱地重新映射到客户机,但许多 ARM 平台缺少等效的扩展。虽然一些 ARM64 平台支持软件委托异常接口 (SDEI),这是一个可用于实现对客户机的无陷阱中断注入的扩展,但它实际上不适用于 32 位 ARM 平台;中断必须由管理程序重新注入。中断延迟的测量如表所示。

● 由于架构限制,Jailhouse 需要模拟硬件平台所必需且无法在硬件中虚拟化的设备,例如作为 ARM 架构中 GIC 一部分的中断分发器,或作为中断控制器一部分的 ICR在现代 Intel x86 平台上。根据这些设备的使用情况,必须分析管理程序的影响。在图 12 中,我们量化了由管理程序活动引起的延迟开销,该活动需要在现代英特尔平台上调节对 ICR 的访问。

Spectre 类攻击的缓解严重依赖于系统软件和固件的措施,以及 CPU 微码的更新。例如,Meltdown 强制操作系统将用户和内核地址空间隔离为单独的页表,这是一项成本密集的更改,因为它需要在上下文切换时刷新 TLB。如前所述,在 TLB 未命中的情况下,管理程序的存在引入了额外的分页层,进而导致页表遍历的延迟更高。其他平台需要系统固件的帮助来减轻攻击面。例如,为了缓解 CVE-2017-5715 (Spectre v2),ARM64 平台实施了基于固件的解决方法。操作系统执行伪固件调用(即安全监视器调用 (SMC)),其副作用是导致推测障碍。但是,客户操作系统的固件调用被管理程序捕获,需要调节并将调用转发到固件接口。在 Jailhouse 中,我们为此类 SMC 调用实现了快速调度程序路径。然而,当进行投机障碍时,这些陷阱会引入额外的延迟。作为基线,我们考虑了 Spectre 缓解措施对传统非虚拟化实时系统的影响,以及它们对虚拟化、分区环境的影响。总共提供了四个不同平台的三个典型微基准作为概述;有关确切的技术细节和更全面的测量,我们参考参考文献。 [4]。我们将测量现代 Intel x86 平台(Xeon E5-2683 v4 和 Xeon Gold 5118)平台(参见图 13)、32 位 ARMv7 平台(Nvidia Jetson TK1)和64 位 ARMv8 平台(Nvidia Jetson TX1,见图 14)。

3.3 Evaluation and Conclusion

我们介绍了 Jailhouse 的概念,这是一个真实的基于 Linux 的静态分区管理程序。静态硬件分区是填补两个极端之间差距的一种很有前途的方法:它支持复杂系统的动态重新配置,并利用 COTS 硬件组件提供的强大的基于硬件的隔离机制,对于嵌入式实时虚拟化,其最终目标是尽量减少与 Guest 的互动。

传统(半)虚拟化方法引入的所有问题都被推迟到 Guest 的操作系统,它们之前已经存在。此外,无人驾驶方法试图填补学术研究系统和工业实用性之间的差距,与半虚拟化技术相比,直接将硬件分配给 Guest 允许运行未经修改的传统有效负载应用程序,而没有活动的管理程序开销。极简的虚拟机管理程序核心简化了认证工作,通过以访客身份执行标准操作系统,我们还最大限度地减少了移植现有传统有效负载应用程序所需的工作量,通过实现一个复杂的演示平台,我们成功地展示了硬件分区的实用性。

虽然当前硬件提供的标准虚拟化扩展似乎足以直接实现我们和许多其他方法,但实际硬件存在许多限制,这些限制可能完全破坏基于分区和虚拟化的方法的优势和保证。因此,我们展示了量化管理程序性能和评估该方法对特定用例的适用性所需的典型基准。

这些测量评估了 Spectre 缓解措施对实时系统的影响。我们表明,对于许多需要 Linux 与实时操作系统并行运行的实际用例,静态硬件分区是传统的基于操作系统的隔离方法的可行替代方案,特别是当必须保护遗留工作负载免受硬件弱点的影响时,例如Spectre 级推测攻击,无需修改认证组件。最后,我们定义了理想 VMM、理想分区和理想分区系统的概念,目标是在只需要考虑设置分区但不与任何分区的内容交互的真实系统上建立零陷阱管理程序在运营阶段。在多个硬件平台上实现该概念的实验表明,当前硬件存在固有的局限性,我们讨论了未来虚拟化技术的必要改进,以促进在现实系统上实现我们的方法。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于 ThinkPHP6 和 Layui 的后台管理框架
下一篇:SpringBoot整合PageHelper实现分页查询功能详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~