与多核技术一起,虚拟化软件对于寻求将多个嵌入式功能组合在一个硬件平台中以提高系统性能并降低开发成本的开发人员来说变得非常宝贵。Warren 描述了具有硬件辅助功能的虚拟机管理程序和处理器的关键功能,并提供了一些平台示例,展示了虚拟化如何在保持隔离和安全的同时整合不同的功能。
虚拟化正迅速成为嵌入式领域最热门的技术之一,为设计人员提供了许多用于产品开发和未来修改的新硬件和软件选项。通过适当的架构,虚拟化可用于将多个嵌入式功能组合到单个硬件平台中,以最大限度地降低开发成本、电源要求和系统组件的数量。这种整合功能允许设计人员将现有应用程序与不同的操作软件合并到一个系统中,而无需修改遗留代码。
结合最近流行的多核技术,虚拟化还可以通过分配额外的处理能力来提高各个软件段的性能和响应能力。同样,虚拟化允许诸如 Windows 或 Linux 之类的通用操作系统 (GPOS) 轻松与实时软件或安全/安全关键功能相结合,同时保持所需的确定性和隔离性。
最初由 IBM 在 1960 年代为企业服务器引入,虚拟化使操作系统的多个副本能够在单个 CPU 上并行运行,从而减少所需的机器数量。与硬件和操作软件跨平台一致的企业环境不同,嵌入式行业采用多种处理器架构和 I/O 结构,因此无法以相同的方式应用虚拟化。例如,企业级应用程序通常会创建代表整个机器环境的虚拟副本,以最大限度地提高 CPU 利用率。不幸的是,这是以牺牲对外部事件的响应为代价的,这使得这种方法对于时间关键的应用程序不切实际。
现在可用于嵌入式应用程序的最新虚拟化软件允许开发团队独立地为每个操作环境分配系统资源,包括内存、附加处理器和 I/O,以优化性能。
硬件配置
虚拟化平台是通过在硬件之上添加实时虚拟机监视器 (VMM) 或管理程序软件层来构建的,以创建和管理包含来宾操作系统的各个分区。管理程序将系统硬件资源(例如内存、I/O 和处理器内核)分配给每个分区,同时保持操作环境之间的必要分离。
管理程序的一个关键功能是保持分区之间的隔离,即使另一个操作系统崩溃也能继续运行。多核处理器允许管理程序创建各种配置以支持嵌入式开发。例如,操作系统可以在单个内核上运行,也可以分布在多个内核上以提高性能。同样,如果时间不是问题,多个操作系统也可以在单个内核上运行。
虚拟化应用程序可以使用多种虚拟机管理程序软件。完全虚拟化是对实际硬件的近乎完整的模拟,它允许客户操作系统无需修改即可运行。部分虚拟化模拟了一些但不是整个目标环境,因此来宾软件可能需要一些修改才能在此环境中运行。使用半虚拟化,来宾程序在它们自己的隔离域中执行,无需模拟硬件环境。尽管客户程序必须经过专门修改才能在半虚拟化环境中运行,但让客户操作系统直接与管理程序通信可以提高性能和效率。
最新一代的嵌入式处理器包括内置硬件功能,可提高性能并加速虚拟环境之间的交互。例如,英特尔虚拟化技术 (英特尔 VT) 包括在硬件中捕获某些 VMM 指令并简化管理程序功能以减少虚拟化开销的工具。面向定向 I/O 的英特尔 VT 添加了硬件加速器,允许将特定 I/O 设备安全分配到特定操作系统,以减少处理器负载并加速数据移动。例如,基于硬件的网络控制器可用于卸载以太网堆栈处理,以提高高速网络的性能。
另一个改进是实现 I/O 排队机制,这样操作软件就不会浪费时间等待操作完成。此外,扩展页表和页属性表等专用 Intel 功能为虚拟机之间物理内存的分区和分配提供了硬件辅助。
虚拟平台示例
软件供应商为设计人员提供了多种基于管理程序的产品,以捕捉嵌入式系统虚拟化的优势。例如,来自 SYSGO 的 PikeOS 结合了半虚拟化技术来创建一个组合实时操作系统 (RTOS) 和虚拟化环境,使多个操作系统分区能够在单个机器内处理不同的资源集(参见图 1)。
图 1: PikeOS 支持在单个 CPU 上虚拟和安全地执行高级操作系统和本机实时任务。
PikeOS 3.3 版支持广泛的操作软件,包括 Linux、ARINC 653、POSIX、Android 等。PikeOS 还可以在多个单核和多核处理器架构上运行,例如 x86、PowerPC、MIPS、ARM 和 SPARC/LEON。多核处理器支持为用户提供了灵活性,他们可以选择从纯非对称多处理 (AMP) 到完全对称多处理 (SMP) 的执行模型。PikeOS 可通过 DO-178B/C、IEC 61508、EN 50128 和 ISO 26262 等安全标准认证。PikeOS 微内核架构小巧紧凑,实时性能可与传统专有 RTOS 产品相媲美。
将安全关键嵌入式功能与大型 GPOS 相结合的虚拟平台必须包含安全规定,允许未受影响的分区在发生软件故障或网络攻击时继续运行。LynuxWorks 最近发布的 LynxSecure 5.1 版管理程序为构建安全嵌入式系统的客户提供军用级保护功能。LynxSecure 5.1 提供两种类型的设备虚拟化,包括将物理设备直接分配给各个客户操作系统以实现最大的安全性,以及在选定的客户之间安全地共享设备以实现最大的功能)。
LynxSecure 还提供两种虚拟化方案:半虚拟化客户操作系统(如 Linux)可实现最高性能,以及完全虚拟化客户操作系统(如 Windows、Solaris、Chromium、LynxOS-178 和 LynxOS-SE),无需更改软件。LynxSecure 提供的另一个关键性能特性是能够跨多个内核运行具有 SMP 功能的完全虚拟化和半虚拟化客户操作系统。
这些产品展示了虚拟化技术如何使设计人员能够整合不同的功能,同时保持所需的隔离和安全性。随着大量新软件产品的推出,销售现成板卡和模块的公司现在正在实施对虚拟化应用程序友好的硬件配置。这些主板具有易于为虚拟化配置的板载内存,以及更小的外形尺寸和更低的功率要求,以支持整合的系统。
所有这些产品和设计优势都表明嵌入式市场虚拟技术的长期、持续趋势。尽管可能需要改变嵌入式设计理念,但虚拟化技术已发展成为开发人员工具包中的宝贵武器。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !