如今,在软件世界中,关于虚拟化的说法很多。简单地说,虚拟化就是让多个操作系统同时在同一个计算平台上运行。虚拟化被认为是从最新的多核处理器中获得最大性能的关键技术。但正如并非所有计算应用程序都相同,并非所有虚拟化方法都适用于所有应用程序。
嵌入式系统有一个通常不适用于办公室和服务器计算机的关键要求:需要对实时事件做出确定性响应。为了支持确定性要求,嵌入式应用程序通常使用 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
发布评论请先 登录
相关推荐
评论