嵌入式虚拟化保护传统投资

描述

  当他们迁移到新的硬件平台时,帮助保护他们的旧软件投资。这为嵌入式开发人员提供了与多年来在新服务器平台上运行旧操作系统 (OS) 和应用程序的 IT 组织相同的优势。随着硬件平台从单核转向多核 32 位到 64 位架构并增加新的连接,例如 Wi-Fi、蓝牙或蜂窝通信,这项投资尤其关键。

  随着物联网 (IoT) 的出现,嵌入式系统重获新生,并且随着它们参与机器对机器 (M2M) 通信的非常相关的子集,它们现在的发展速度比以往任何时候都快。历史短。这些传统专用系统现在必须发展到具有多个内核的新架构平台,并且通常拥有或需要 64 位架构,而不仅仅是 32 位地址空间。添加新的通信媒介(如 Wi-Fi、蓝牙或蜂窝)以及新的 GUI 要求(如触摸、滑动和拖动)给嵌入式设计人员带来了一系列全新的复杂性。

  然而,嵌入式开发人员现在可以使用虚拟化范式,因为他们试图发展他们的遗留系统以满足这些新要求,而无需完全重写或重新设计现有系统;因此,虚拟化可以帮助开发人员管理将他们的系统带入当今互联世界的成本和时间。

  一个棘手问题的优雅解决方案

  有一种技术可以让嵌入式开发人员保留他们的遗留软件系统,即使它周围的世界——包括它运行的硬件——处于一个不断变化的世界。该技术是虚拟化。该技术已在企业软件世界中使用多年,使 IT 部门能够运行多个版本的 IT 应用程序和操作系统,即使它们已经过时很长时间。它在嵌入式领域还没有被广泛使用,主要是因为嵌入式系统的刷新率没有企业领域那么快,而且还因为企业管理程序不能像桌面一样满足嵌入式尺寸和性能要求OS 的使用频率低于实时操作系统 (RTOS)。

  在研究嵌入式管理程序如何使嵌入式开发人员受益之前,让我们更详细地研究一下虚拟化。虚拟化是一种技术,它为在其上运行的软件(包括处理器、内存和设备)提供硬件的“虚拟”表示。在我们的日常生活中,一个很好的例子是运行在 Apple Mac 上的管理程序,它允许 Microsoft Windows 在同一硬件平台上与 Mac OS 一起运行,因为它为 Windows 提供了“虚拟”PC。这是类型 2 管理程序的一个很好的示例,其中管理程序实际上作为应用程序运行在本机操作系统之上,然后“来宾”操作系统运行在它之上。这带来了本机操作系统仍在控制中并且客户操作系统同时运行的优势,因为它本质上是作为应用程序运行的。但是,该解决方案中的多层软件存在巨大的性能问题,而且该技术对于所有嵌入式 RTOS 的使用都不是很便携。

  还有另一种虚拟化解决方案,通常称为“Type 1”或“裸机”,它不依赖于本机操作系统,直接与硬件交互,为来宾提供“虚拟”硬件。这越来越接近于满足嵌入式开发人员的需求,因为它肯定比 Type 2 更高效。但是,如图 1 所示,它仍然依赖于一个“助手”操作系统,它的大小接近在类型 2 的情况下到本机操作系统。尽管它被称为“裸机”,但这并不意味着它具有嵌入式开发人员所需的实时或确定性属性。

  因此,嵌入式开发人员可以使用不同种类的管理程序来利用虚拟化解决方案。由于构建高效的嵌入式管理程序所需的设计存在一些固有差异,因此需要一个新名称来区分类型 1,因此嵌入式管理程序被称为类型 0 管理程序。

  比较 Type 0 和 Type 1 时的两个关键区别是 1) 大小和 2) 实时性能。通过移除 Type 1 中使用的“辅助”操作系统并创建真正的裸机管理程序,运行时内存需求从 GB 下降到 MB,静态代码大小从 MB 下降到 KB。此外,通过移除重量级的辅助操作系统并用小型嵌入式实时内核或“分离内核”替换它来分离资源,现在可以实现实时确定性。此外,通过利用现代处理器中的硬件虚拟化功能,使用管理程序的性能开销达到本机性能的 95% 以上。

  现实世界的嵌入式虚拟化使用

  确定嵌入式虚拟机管理程序可以提供合理的嵌入式占用空间和实时性能后,我们现在可以专注于嵌入式开发人员在将现有系统迁移到下一代连接嵌入式设备时的好处。这些新系统的主要目标如下:

  迁移到既可以是多核又可以是 64 位的现代硬件平台

  与现代标准用户界面的兼容性

  连接性增加,随之而来的是对更高安全性的要求

  嵌入式管理程序如何帮助解决所有这些问题,并减少遗留系统的重写代码量?管理程序可以很好地完成一些仅使用标准 RTOS 难以实现的事情。

  抽象底层硬件

  这些管理程序功能中的第一个功能是从 RTOS 和在其上运行的应用程序中抽象出底层硬件。这在将现有的 RTOS 和应用程序迁移到新的硬件平台时确实很有帮助,因为管理程序可以使虚拟硬件看起来就像原始硬件一样,并且可以应用于内存、处理器和设备。

  因此,由于新的物理硬件可以是带有一组新的现代设备的多核 64 位处理器,因此管理程序可以提供一个 32 位单核虚拟处理器,新物理设备映射到传统的虚拟版本设备。这可以防止立即迁移到新的 SMP、64 位 RTOS,并且还减少了为板上的新设备创建新 BSP 的需要。这也是引入新连接选项(例如 Wi-Fi 或蜂窝网络)的一种相对优雅的方式,因为可以通过设备虚拟化使它们看起来像普通的以太网设备。

  多操作系统促进新接口、安全性

  虚拟化的第二个关键能力是允许多个操作系统在单个硬件平台上运行。这允许嵌入式开发人员保持其遗留系统完好无损,并通过引入另一个并行运行的操作系统来添加新功能。这可能看起来非常低效,但随着硬件技术的飞跃和内存成本的提高,具有硬件虚拟化支持的现代多核系统实际上可以运行多个操作系统而不会降低性能;这也比必须采购过时的硬件组件便宜得多。当将新的连接介质引入系统时,这种多操作系统场景是另一个有趣的设计考虑因素,而不是虚拟化新设备,

  除了引入遗留系统之外,这种多操作系统场景还为连接的嵌入式系统带来了一些有趣的设计优势,并有助于引入新的需求,例如现代用户界面和额外的安全性。嵌入式开发人员一直面临的一个问题是嵌入式系统的标准用户界面,因为标准的基于 GUI 的操作系统传统上对于实时系统来说太大或太慢。对于 RTOS,GUI 必须从头开始构建,因此不具备我们在手机、平板电脑和计算机上习惯的所有触摸/滑动功能。

  通过使用嵌入式虚拟机管理程序,开发人员也可以得到他们的蛋糕并吃掉它。通过在一个虚拟机 (VM) 中安装 RTOS 并在另一个 VM 中安装更传统的 GUI 操作系统(如 Android),实时部分得到处理,并内置了用户友好的标准 GUI;通过使用多核处理器,虚拟机管理程序可以为每个处理器分配自己的专用处理器、内存和资源。

  难题的最后一块是安全性——这可能是联网嵌入式设备最热门的话题之一,因为这些曾经专用和专有的系统现在正在通过开放的互联网连接和控制;因此,它们现在可能成为网络犯罪和网络恐怖主义的目标。通过使用分离内核和嵌入式管理程序,系统的不同部分可以很容易地隔离和保护。

  例如,连接到 Internet 的虚拟机通常不同于控制某物或存储信息的虚拟机,后者通常是恶意攻击的主要目标。因此,即使一个虚拟机被感染,这种感染也不会传播到另一台虚拟机,因为分离内核将它们分开,就像它们在物理上独立的硬件上运行时一样。

  嵌入式虚拟化是真的吗?

  总之,被称为嵌入式虚拟机管理程序的虚拟化技术基于实时分离内核,可以帮助嵌入式开发人员将他们的传统嵌入式系统带入下一代连接的多核系统,并具有用户友好的 GUI 和增加的安全性以防止恶意威胁。这一切似乎都好得令人难以置信。在 LynuxWorks,我们开发了一个名为 LynxSecure 的分离内核和嵌入式虚拟机管理程序,现在它已经到了第五代,它正在帮助嵌入式开发人员实现他们的新设计目标——按时、按预算。

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分