如今,在軟件世界中,關(guān)于虛擬化的說法很多。簡單地說,虛擬化就是讓多個操作系統(tǒng)同時在同一個計算平臺上運行。虛擬化被認為是從最新的多核處理器中獲得最大性能的關(guān)鍵技術(shù)。但正如并非所有計算應用程序都相同,并非所有虛擬化方法都適用于所有應用程序。
嵌入式系統(tǒng)有一個通常不適用于辦公室和服務器計算機的關(guān)鍵要求:需要對實時事件做出確定性響應。為了支持確定性要求,嵌入式應用程序通常使用 RTOS。嵌入式應用程序還使用通用操作系統(tǒng)來處理操作員界面、數(shù)據(jù)庫和通用計算任務。
過去,由于操作系統(tǒng)無法成功地共存于計算平臺上,系統(tǒng)開發(fā)人員采用多個處理平臺,使用一個或多個來支持實時功能,而其他處理平臺則用于處理通用處理。可以在同一平臺上結(jié)合兩種類型處理的系統(tǒng)設(shè)計人員可以通過消除冗余計算硬件來節(jié)省成本。多核處理器的出現(xiàn)支持了這一前提,因為可以將處理器內(nèi)核專用于不同的計算環(huán)境;然而,整合這些環(huán)境帶來的軟件問題需要特別考慮。在同一平臺上結(jié)合實時和通用操作環(huán)境對如何實施虛擬化提出了一些嚴格的要求。
半虛擬化
在嵌入式平臺上支持多個操作系統(tǒng)的一種常見方法是使用稱為管理程序的操作軟件,該軟件在上電時首先啟動,然后加載操作系統(tǒng)。管理程序負責平臺并處理操作系統(tǒng)環(huán)境之間的內(nèi)存分區(qū)和其他處理器資源。如果 CPU 不支持用于虛擬化的 Intel VT-x 硬件擴展,則必須對來賓操作系統(tǒng)進行修改,以便他們知道虛擬機管理程序支持它們。它們必須進行自己的地址轉(zhuǎn)換,以避免與屬于其他操作系統(tǒng)的內(nèi)存發(fā)生沖突。
像這樣的情況,客戶操作系統(tǒng)知道它是客戶,稱為半虛擬化。盡管該方案可能有效,但這種方法的主要缺點是開發(fā)人員不能將標準的開箱即用操作系統(tǒng)用作來賓。這是 Xen 管理程序采用的虛擬化方法。修改第三方操作系統(tǒng)可能會導致嚴重的支持問題,并且通過升級和更新在其長期生命周期內(nèi)支持此類產(chǎn)品的成本非常高。
服務器虛擬化
為了最大限度地減少需要對客戶操作系統(tǒng)進行的更改,以便它可以在虛擬環(huán)境中運行,開發(fā)人員可以構(gòu)建一個虛擬機管理程序來模擬整個機器,為每個客戶操作系統(tǒng)提供它認為對處理器平臺的獨占訪問權(quán)限。今天,這種方法正用于多核處理器系統(tǒng),以運行同一應用程序的多個實例。
雖然這種方法對于經(jīng)過優(yōu)化以使處理器保持忙碌的服務器應用程序可能是令人滿意的,但對于需要確保對外部事件做出最快響應的嵌入式應用程序來說,它是不可接受的。當前可用的此類軟件產(chǎn)品并未針對英特爾架構(gòu)處理器或特定類別的應用程序進行優(yōu)化。每次需要支持新的操作系統(tǒng)配置時,都需要大量工作來定制管理程序以與選定的操作系統(tǒng)一起使用。
硬件輔助嵌入式虛擬化
嵌入式應用程序的最佳虛擬化類型涉及處理器和平臺架構(gòu)提供的硬件輔助功能,管理程序使用這些功能來確保系統(tǒng)滿足要支持的應用程序的性能目標。借助嵌入式虛擬化,對機器的某些部分進行仿真以為多個操作系統(tǒng)提供標準環(huán)境,而不對系統(tǒng)的某些部分進行仿真以確保滿足系統(tǒng)性能目標。模擬 PCI 總線接口和 CMOS 寄存器等基本功能,但實時響應所需的 I/O 接口分配給客戶 RTOS 專用。
嵌入式管理程序必須對機器進行分區(qū)以分離資源,供每個操作系統(tǒng)獨占使用。TenAsys 的 Windows eVM 通過配置 Microsoft Windows 引導加載程序來限制它使用的硬件線程和內(nèi)存的數(shù)量來實現(xiàn)這一點。Windows 首先啟動并正常運行,剩余資源分配給它。因為它在裸機而不是模擬軟件層上運行,所以 Windows 任務以最高性能執(zhí)行。
接下來,RTOS 和實時應用程序軟件被加載到為應用程序的實時部分分配的內(nèi)存中,然后 RTOS 從 Windows 驅(qū)動程序啟動并開始在其隔離的硬件環(huán)境中執(zhí)行應用程序代碼。通過訪問自己的性能關(guān)鍵 I/O 設(shè)備,實時應用程序?qū)⑼耆毩⒂?Windows 運行。提供了特殊的驅(qū)動程序,以便實時環(huán)境可以使用 Windows 資源。當 Windows 和實時任務需要通信或?qū)崟r應用程序需要使用 Windows 資源時,這兩個環(huán)境通過共享內(nèi)存中的仿真通信鏈路進行通信,例如虛擬以太網(wǎng)和串行鏈路。實時 I/O 設(shè)備通過 Windows 端的通用設(shè)備驅(qū)動程序進行配置。
利用英特爾架構(gòu)
嵌入式系統(tǒng)開發(fā)人員在他們想要保護的知識產(chǎn)權(quán)上進行了大量投資。除了花費金錢和時間來重新實現(xiàn)之外,更改應用程序代碼以在新的操作系統(tǒng)環(huán)境中運行可能會將錯誤注入應用程序或?qū)е滤鼈冏兊貌豢煽俊?/p>
高效的嵌入式虛擬化需要硬件支持,以便各種操作系統(tǒng)無需修改即可運行。通過使用英特爾在其新 CPU 和芯片組中提供的 VT-x 硬件擴展,可以提供高效的執(zhí)行平臺,而無需修改客戶操作系統(tǒng)或其驅(qū)動程序或重新分區(qū)系統(tǒng)磁盤。
英特爾正在開發(fā)的新硬件支持將支持其他通用操作系統(tǒng)的嵌入式虛擬化。此外,英特爾目前正在開發(fā)對虛擬化 CPU 的分頁機制和中斷控制器的支持。借助新的硬件功能,客戶操作系統(tǒng)可以獨立啟動和停止,并且無需重新啟動整個平臺即可重新啟動 Windows。
嵌入式虛擬化節(jié)省成本
在嵌入式市場中,開發(fā)人員已經(jīng)習慣于使用多個處理平臺來定制具有額外工作和費用的操作環(huán)境,以保證實時系統(tǒng)響應能力。但未來可能會有所不同。使用適用于 Windows 的 eVM 來實現(xiàn)系統(tǒng)整合,而無需軟件定制,可以避免無法適應的解決方案,同時啟用可以以合理成本快速實施的解決方案。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17113瀏覽量
184386 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3614瀏覽量
91437 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7152瀏覽量
125623
發(fā)布評論請先 登錄
RISC-V 虛擬化堆棧和硬件的最新進展
發(fā)那科車床系統(tǒng)/加工中心系統(tǒng)通用操作說明書
鴻道Intewell操作系統(tǒng):人形機器人底層操作系統(tǒng)
實時操作系統(tǒng)RTOS選型指南及實例分析
鴻道Intewell操作系統(tǒng)的Linux實時拓展方案

評論