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

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

3天内不再提示

实时和通用操作系统通过虚拟化结合起来

星星科技指导员 来源:嵌入式计算设计 作者:Chris Main 2022-06-28 11:49 次阅读

如今,在软件世界中,关于虚拟化的说法很多。简单地说,虚拟化就是让多个操作系统同时在同一个计算平台上运行。虚拟化被认为是从最新的多核处理器中获得最大性能的关键技术。但正如并非所有计算应用程序都相同,并非所有虚拟化方法都适用于所有应用程序。

嵌入式系统有一个通常不适用于办公室和服务器计算机的关键要求:需要对实时事件做出确定性响应。为了支持确定性要求,嵌入式应用程序通常使用 RTOS。嵌入式应用程序还使用通用操作系统来处理操作员界面、数据库和通用计算任务。

过去,由于操作系统无法成功地共存于计算平台上,系统开发人员采用多个处理平台,使用一个或多个来支持实时功能,而其他处理平台则用于处理通用处理。可以在同一平台上结合两种类型处理的系统设计人员可以通过消除冗余计算硬件来节省成本。多核处理器的出现支持了这一前提,因为可以将处理器内核专用于不同的计算环境;然而,整合这些环境带来的软件问题需要特别考虑。在同一平台上结合实时和通用操作环境对如何实施虚拟化提出了一些严格的要求。

半虚拟化

在嵌入式平台上支持多个操作系统的一种常见方法是使用称为管理程序的操作软件,该软件在上电时首先启动,然后加载操作系统。管理程序负责平台并处理操作系统环境之间的内存分区和其他处理器资源。如果 CPU 不支持用于虚拟化的 Intel VT-x 硬件扩展,则必须对来宾操作系统进行修改,以便他们知道虚拟机管理程序支持它们。它们必须进行自己的地址转换,以避免与属于其他操作系统的内存发生冲突。

像这样的情况,客户操作系统知道它是客户,称为半虚拟化。尽管该方案可能有效,但这种方法的主要缺点是开发人员不能将标准的开箱即用操作系统用作来宾。这是 Xen 管理程序采用的虚拟化方法。修改第三方操作系统可能会导致严重的支持问题,并且通过升级和更新在其长期生命周期内支持此类产品的成本非常高。

服务器虚拟化

为了最大限度地减少需要对客户操作系统进行的更改,以便它可以在虚拟环境中运行,开发人员可以构建一个虚拟机管理程序来模拟整个机器,为每个客户操作系统提供它认为对处理器平台的独占访问权限。今天,这种方法正用于多核处理器系统,以运行同一应用程序的多个实例。

虽然这种方法对于经过优化以使处理器保持忙碌的服务器应用程序可能是令人满意的,但对于需要确保对外部事件做出最快响应的嵌入式应用程序来说,它是不可接受的。当前可用的此类软件产品并未针对英特尔架构处理器或特定类别的应用程序进行优化。每次需要支持新的操作系统配置时,都需要大量工作来定制管理程序以与选定的操作系统一起使用。

硬件辅助嵌入式虚拟化

嵌入式应用程序的最佳虚拟化类型涉及处理器和平台架构提供的硬件辅助功能,管理程序使用这些功能来确保系统满足要支持的应用程序的性能目标。借助嵌入式虚拟化,对机器的某些部分进行仿真以为多个操作系统提供标准环境,而不对系统的某些部分进行仿真以确保满足系统性能目标。模拟 PCI 总线接口和 CMOS 寄存器等基本功能,但实时响应所需的 I/O 接口分配给客户 RTOS 专用。

嵌入式管理程序必须对机器进行分区以分离资源,供每个操作系统独占使用。TenAsys 的 Windows eVM 通过配置 Microsoft Windows 引导加载程序来限制它使用的硬件线程和内存的数量来实现这一点。Windows 首先启动并正常运行,剩余资源分配给它。因为它在裸机而不是模拟软件层上运行,所以 Windows 任务以最高性能执行。

接下来,RTOS 和实时应用程序软件被加载到为应用程序的实时部分分配的内存中,然后 RTOS 从 Windows 驱动程序启动并开始在其隔离的硬件环境中执行应用程序代码。通过访问自己的性能关键 I/O 设备,实时应用程序将完全独立于 Windows 运行。提供了特殊的驱动程序,以便实时环境可以使用 Windows 资源。当 Windows 和实时任务需要通信或实时应用程序需要使用 Windows 资源时,这两个环境通过共享内存中的仿真通信链路进行通信,例如虚拟以太网和串行链路。实时 I/O 设备通过 Windows 端的通用设备驱动程序进行配置。

利用英特尔架构

嵌入式系统开发人员在他们想要保护的知识产权上进行了大量投资。除了花费金钱和时间来重新实现之外,更改应用程序代码以在新的操作系统环境中运行可能会将错误注入应用程序或导致它们变得不可靠。

高效的嵌入式虚拟化需要硬件支持,以便各种操作系统无需修改即可运行。通过使用英特尔在其新 CPU 和芯片组中提供的 VT-x 硬件扩展,可以提供高效的执行平台,而无需修改客户操作系统或其驱动程序或重新分区系统磁盘。

英特尔正在开发的新硬件支持将支持其他通用操作系统的嵌入式虚拟化。此外,英特尔目前正在开发对虚拟化 CPU 的分页机制和中断控制器的支持。借助新的硬件功能,客户操作系统可以独立启动和停止,并且无需重新启动整个平台即可重新启动 Windows。

嵌入式虚拟化节省成本

在嵌入式市场中,开发人员已经习惯于使用多个处理平台来定制具有额外工作和费用的操作环境,以保证实时系统响应能力。但未来可能会有所不同。使用适用于 Windows 的 eVM 来实现系统整合,而无需软件定制,可以避免无法适应的解决方案,同时启用可以以合理成本快速实施的解决方案。

审核编辑:郭婷

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

    关注

    112

    文章

    15145

    浏览量

    170940
  • WINDOWS
    +关注

    关注

    3

    文章

    3433

    浏览量

    87122
  • 操作系统
    +关注

    关注

    37

    文章

    6259

    浏览量

    121839
收藏 人收藏

    评论

    相关推荐

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统实时应用提供一个稳定、可预测和高效运行环境的操作系统实时
    的头像 发表于 04-16 16:30 64次阅读
    带你认识<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>(rtos)

    再谈嵌入式实时操作系统

    程序的可移植性得到了增强,系统开发的工作量减轻的同时也提高了开发效率。对实时性和可靠性日益增长的要求正在塑造某些现代领域的嵌入式实时操作系统的发展方向,例如航空航天、工业控制、汽车电子
    的头像 发表于 04-09 17:27 187次阅读
    再谈嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时
    的头像 发表于 12-26 09:54 1705次阅读
    详解<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>和非<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>

    什么是实时操作系统(RTOS)

    实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约
    的头像 发表于 11-23 17:14 1603次阅读

    怎么把硬件操作和APP软件耦合起来

    你们写嵌入式都是怎么把硬件操作和APP软件耦合起来的,怎样达到高内聚低耦合的效果
    发表于 11-06 07:57

    四轴横滚和俯仰的PID调好了,混合起来就不行了怎么解决?

    新人求助,四轴横滚和俯仰角的PID都调好了 抗干扰能力蛮强的 响应也很快 但是混合起来就会有不规律的偏 也会自己回来 这是为什么呢 求助一下大家 断断续续做了4个月的四轴了 现在卡在了这里 求大神解答
    发表于 11-06 07:37

    实时操作系统的滴答Tick设置多少才合适?

    实时操作系统的滴答Tick设置多少才合适? 介绍实时操作系统中Tick的设置。 在实时操作系统
    的头像 发表于 10-29 16:33 527次阅读

    到底啥是实时操作系统呢?它到底实时实时呢?

    到底啥是实时操作系统呢?它到底实时实时呢? 实时操作系统(Real Time Operatin
    的头像 发表于 10-29 16:33 716次阅读

    如何判断自己的应用需要上实时操作系统

    无线,WIFI无线。主要是数据采集,多种通信规约转换。 请问怎么判断自己的设备需要上实时操作系统实时操作系统中,ucos、freertos、rt-thread在应用上,或者说是
    发表于 10-28 08:12

    一种微型生态花园控制系统设计

    以STM32F407ZGT6单片机为核心控制器设计了一种微型生态花园控制系统,将传感器技术、Wi-Fi技术、摄像头技术、自动追光技术、μC/OS-Ⅲ实时操作系统结合起来,实现对花园环境
    的头像 发表于 10-20 09:38 277次阅读
    一种微型生态花园控制<b class='flag-5'>系统</b>设计

    实时操作系统(RTOS)和分时操作系统(TSOS)的区别

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片划分的非
    发表于 09-21 10:19 3185次阅读

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;
    的头像 发表于 08-18 09:48 1293次阅读

    FreeRTOS:一个迷你的实时操作系统内核

    ** 1、FreeRTOS** FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器
    的头像 发表于 06-29 17:15 509次阅读
    FreeRTOS:一个迷你的<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>内核

    有没有办法将espalexa和elegantOTA开始命令与网络服务器开始结合起来​​?

    elegantOTA.begin(&server) 之后有一个 server.begin(),但 espalexa 说要消除它并用 espalexa.begin(&server) 替换它。有没有办法将 espalexa 和 elegantOTA 开始命令与网络服务器开始结合起来​​?
    发表于 06-02 06:32

    系统升级 | RK3568开发平台成功搭载SylixOS国产实时操作系统

    。 SylixOS 采用抢占式、多任务、硬实时的方式来设计整个操作系统。已广泛适用于电力、工业自动、轨道交通、网络通讯、智能家居、医疗等领域。迅为RK3568开发平台已经成功搭载SylixOS国产
    发表于 04-25 14:18