與多核技術一起,虛擬化軟件對于尋求將多個嵌入式功能組合在一個硬件平臺中以提高系統性能并降低開發成本的開發人員來說變得非常寶貴。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 功能的完全虛擬化和半虛擬化客戶操作系統。
這些產品展示了虛擬化技術如何使設計人員能夠整合不同的功能,同時保持所需的隔離和安全性。隨著大量新軟件產品的推出,銷售現成板卡和模塊的公司現在正在實施對虛擬化應用程序友好的硬件配置。這些主板具有易于為虛擬化配置的板載內存,以及更小的外形尺寸和更低的功率要求,以支持整合的系統。
所有這些產品和設計優勢都表明嵌入式市場虛擬技術的長期、持續趨勢。盡管可能需要改變嵌入式設計理念,但虛擬化技術已發展成為開發人員工具包中的寶貴武器。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19485瀏覽量
231539 -
Linux
+關注
關注
87文章
11357瀏覽量
210846 -
操作系統
+關注
關注
37文章
6917瀏覽量
123953
發布評論請先 登錄
相關推薦
嵌入式軟件工程師就業好不好?
嵌入式機器學習的應用特性與軟件開發環境

嵌入式軟件開發符合ISO 26262 功能安全標準
嵌入式軟件開發招聘
AMD Vitis? Embedded嵌入式軟件開發套件的功能和特性概述

評論