如今,在軟件世界中,關于虛擬化的說法很多。簡單地說,虛擬化就是讓多個操作系統同時在同一個計算平臺上運行。虛擬化被認為是從最新的多核處理器中獲得最大性能的關鍵技術。但正如并非所有計算應用程序都相同,并非所有虛擬化方法都適用于所有應用程序。
嵌入式系統有一個通常不適用于辦公室和服務器計算機的關鍵要求:需要對實時事件做出確定性響應。為了支持確定性要求,嵌入式應用程序通常使用 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 來實現系統整合,而無需軟件定制,可以避免無法適應的解決方案,同時啟用可以以合理成本快速實施的解決方案。
審核編輯:郭婷
-
控制器
+關注
關注
113文章
16570瀏覽量
180407 -
WINDOWS
+關注
關注
4文章
3586瀏覽量
89921 -
操作系統
+關注
關注
37文章
6941瀏覽量
124150
發布評論請先 登錄
相關推薦
實時操作系統RTOS選型指南及實例分析
鴻道Intewell操作系統的Linux實時拓展方案

基于國產化鴻道Intewell操作系統的高性能實時運動控制解決方案
虛擬內存和云計算的關系
linux是實時系統還是分時操作系統
云計算中的虛擬化技術應用
請問線圈作為磁場傳感器輸出之后接入OP07采用同相比例放大電路,線圈部分的噪聲怎么和放大器結合起來?
簡單認識RTOS實時操作系統
國產鴻道Intewel操作系統與Codesys高實時虛擬化運動控制解決方案

芯生態 | Core i7-8700T適配鴻道Intewell工業操作系統
微內核實時操作系統的介紹
再談嵌入式實時操作系統

評論