0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虚拟化如何在嵌入式软件开发中展示实力

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-06-22 17:06 次阅读

与多核技术一起,虚拟化软件对于寻求将多个嵌入式功能组合在一个硬件平台中以提高系统性能并降低开发成本的开发人员来说变得非常宝贵。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 上虚拟和安全地执行高级操作系统和本机实时任务。

poYBAGKy27CAISWvAAGPOEUr4OU696.png

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 功能的完全虚拟化和半虚拟化客户操作系统。

这些产品展示了虚拟化技术如何使设计人员能够整合不同的功能,同时保持所需的隔离和安全性。随着大量新软件产品的推出,销售现成板卡和模块的公司现在正在实施对虚拟化应用程序友好的硬件配置。这些主板具有易于为虚拟化配置的板载内存,以及更小的外形尺寸和更低的功率要求,以支持整合的系统。

所有这些产品和设计优势都表明嵌入式市场虚拟技术的长期、持续趋势。尽管可能需要改变嵌入式设计理念,但虚拟化技术已发展成为开发人员工具包中的宝贵武器。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    17939

    浏览量

    221419
  • Linux
    +关注

    关注

    87

    文章

    10915

    浏览量

    206493
  • 操作系统
    +关注

    关注

    37

    文章

    6155

    浏览量

    121677
收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发应该掌握哪些知识?

    两个部分组成,其中嵌入式软件是指在嵌入式系统运行的程序,用于控制硬件并提供特定的功能和服务。嵌入式软件
    发表于 02-19 11:23

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将嵌入式
    发表于 02-02 15:24

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 363次阅读

    嵌入式硬件和软件哪个好?

    这类技术都是看经验的,经验越高,那他的身价也相应变高。据统计,65%的电子产品开发企业嵌入式软件开发工程师团队,往往只占全公司人数的5%,但是却创造了全公司超过70%的效益。
    发表于 12-05 15:17

    嵌入式软件开发流程

    电子发烧友网站提供《嵌入式软件开发流程.ppt》资料免费下载
    发表于 11-17 14:37 1次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>流程

    嵌入式软件开发常用工具有哪些?

    分享一些嵌入式软件开发常用工具。 1、Keil MDK:这是德国Keil公司开发的基于8051、9051、ARM7、ARM9系列微控制器的嵌入式
    发表于 11-10 11:03

    嵌入式Linux应用开发的完全手册

    嵌入式Linux在嵌入式领域发展迅速、需求旺盛,但是嵌入式Linux 的入门很难。初学者多是自己琢磨,效率不高。学习过程碰到的问题千奇百怪,解决后却往往发现是极其低级的错误,以作者为
    发表于 09-25 07:12

    嵌入式软件好还是硬件好?

    越高,那他的身价也相应变高。据统计,65%的电子产品开发企业嵌入式软件开发工程师团队,往往只占全公司人数的5%,但是却创造了全公司超过70%的效益。
    发表于 09-18 15:31

    Vitis统一软件平台文档:嵌入式软件开发

    电子发烧友网站提供《Vitis统一软件平台文档:嵌入式软件开发.pdf》资料免费下载
    发表于 09-15 10:11 0次下载
    Vitis统一<b class='flag-5'>软件</b>平台文档:<b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>

    107使用ADS v1.2进行嵌入式软件开发

    当开始为嵌入式应用程序开发软件时,ADS的用户可能不知道他们的目标硬件的技术规格。目标外围设备、内存映射甚至处理器本身的细节可能是未知或未确定的。 为了在知道或考虑此类细节之前进行软件开发,ADS
    发表于 08-30 06:27

    何在持续集成开发流程中使用Jenkins和Docker?

    本指南介绍了如何在持续集成开发流程中使用Jenkins和Docker。 本指南的受众是嵌入式软件开发人员。在指南中,我们还讨论了测试平台的主题,强调了使用Arm Fast Model技
    发表于 08-02 10:50

    嵌入式软件开发基本要素之代码质量

    IAR 的嵌入式开发解决方案涵盖了所有的嵌入式软件开发基本要素,增加了提高生产力和效率的价值,保证了质量,并加快了上市时间。这一切可以通过投资回报率(ROI)和总拥有成本(TCO)的用例来得到证明。
    发表于 05-15 16:36 333次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>基本要素之代码质量

    如何为嵌入式软件开发选择编译器

    在过去数十年,摩尔定律一直支配着半导体的发展。随着MCU的性能越来越强,嵌入式产品也越来越智能,嵌入式软件也变得越来越复杂。编译器作为嵌入式软件开发
    的头像 发表于 04-06 14:59 550次阅读

    成功开发嵌入式软件的技巧有哪些?

    嘿大家,我想开始讨论嵌入式软件开发并分享一些对我的工作有帮助的技巧。首先,清楚了解项目的要求和限制很重要。这包括诸如处理能力、内存和输入/输出能力之类的东西。此信息将有助于指导您的设计决策并确保软件
    发表于 03-31 08:28

    嵌入式开发学习的6大阶段

    嵌入式Linux的开发环境主要课程①C语言;②Linux操作系统及C高级;③数据结构及算法职业规划嵌入式Linux软件开发工程师、C语言开发
    发表于 03-29 11:25