如今,在軟件世界中,關(guān)于虛擬化的說法很多。簡單地說,虛擬化就是讓多個操作系統(tǒng)同時在同一個計算平臺上運行。虛擬化被認為是從最新的多核處理器中獲得最大性能的關(guān)鍵技術(shù)。但正如并非所有計算應(yīng)用程序都相同,并非所有虛擬化方法都適用于所有應(yīng)用程序。
嵌入式系統(tǒng)有一個通常不適用于辦公室和服務(wù)器計算機的關(guān)鍵要求:需要對實時事件做出確定性響應(yīng)。為了支持確定性要求,嵌入式應(yīng)用程序通常使用 RTOS。嵌入式應(yīng)用程序還使用通用操作系統(tǒng)來處理操作員界面、數(shù)據(jù)庫和通用計算任務(wù)。
過去,由于操作系統(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)可能會導(dǎo)致嚴重的支持問題,并且通過升級和更新在其長期生命周期內(nèi)支持此類產(chǎn)品的成本非常高。
服務(wù)器虛擬化
為了最大限度地減少需要對客戶操作系統(tǒng)進行的更改,以便它可以在虛擬環(huán)境中運行,開發(fā)人員可以構(gòu)建一個虛擬機管理程序來模擬整個機器,為每個客戶操作系統(tǒng)提供它認為對處理器平臺的獨占訪問權(quán)限。今天,這種方法正用于多核處理器系統(tǒng),以運行同一應(yīng)用程序的多個實例。
雖然這種方法對于經(jīng)過優(yōu)化以使處理器保持忙碌的服務(wù)器應(yīng)用程序可能是令人滿意的,但對于需要確保對外部事件做出最快響應(yīng)的嵌入式應(yīng)用程序來說,它是不可接受的。當前可用的此類軟件產(chǎn)品并未針對英特爾架構(gòu)處理器或特定類別的應(yīng)用程序進行優(yōu)化。每次需要支持新的操作系統(tǒng)配置時,都需要大量工作來定制管理程序以與選定的操作系統(tǒng)一起使用。
硬件輔助嵌入式虛擬化
嵌入式應(yīng)用程序的最佳虛擬化類型涉及處理器和平臺架構(gòu)提供的硬件輔助功能,管理程序使用這些功能來確保系統(tǒng)滿足要支持的應(yīng)用程序的性能目標。借助嵌入式虛擬化,對機器的某些部分進行仿真以為多個操作系統(tǒng)提供標準環(huán)境,而不對系統(tǒng)的某些部分進行仿真以確保滿足系統(tǒng)性能目標。模擬 PCI 總線接口和 CMOS 寄存器等基本功能,但實時響應(yīng)所需的 I/O 接口分配給客戶 RTOS 專用。
嵌入式管理程序必須對機器進行分區(qū)以分離資源,供每個操作系統(tǒng)獨占使用。TenAsys 的 Windows eVM 通過配置 Microsoft Windows 引導(dǎo)加載程序來限制它使用的硬件線程和內(nèi)存的數(shù)量來實現(xiàn)這一點。Windows 首先啟動并正常運行,剩余資源分配給它。因為它在裸機而不是模擬軟件層上運行,所以 Windows 任務(wù)以最高性能執(zhí)行。
接下來,RTOS 和實時應(yīng)用程序軟件被加載到為應(yīng)用程序的實時部分分配的內(nèi)存中,然后 RTOS 從 Windows 驅(qū)動程序啟動并開始在其隔離的硬件環(huán)境中執(zhí)行應(yīng)用程序代碼。通過訪問自己的性能關(guān)鍵 I/O 設(shè)備,實時應(yīng)用程序?qū)⑼耆毩⒂?Windows 運行。提供了特殊的驅(qū)動程序,以便實時環(huán)境可以使用 Windows 資源。當 Windows 和實時任務(wù)需要通信或?qū)崟r應(yīng)用程序需要使用 Windows 資源時,這兩個環(huán)境通過共享內(nèi)存中的仿真通信鏈路進行通信,例如虛擬以太網(wǎng)和串行鏈路。實時 I/O 設(shè)備通過 Windows 端的通用設(shè)備驅(qū)動程序進行配置。
利用英特爾架構(gòu)
嵌入式系統(tǒng)開發(fā)人員在他們想要保護的知識產(chǎn)權(quán)上進行了大量投資。除了花費金錢和時間來重新實現(xiàn)之外,更改應(yīng)用程序代碼以在新的操作系統(tǒng)環(huán)境中運行可能會將錯誤注入應(yīng)用程序或?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)響應(yīng)能力。但未來可能會有所不同。使用適用于 Windows 的 eVM 來實現(xiàn)系統(tǒng)整合,而無需軟件定制,可以避免無法適應(yīng)的解決方案,同時啟用可以以合理成本快速實施的解決方案。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17879瀏覽量
195162 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3706瀏覽量
94330 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7439瀏覽量
129623
發(fā)布評論請先 登錄
通用自動化測試系統(tǒng):FCT、ATE、ICT、PCBA功能測試
硬實時·強生態(tài):鴻道Intewell硬實時操作系統(tǒng)
國產(chǎn)工業(yè)操作系統(tǒng)選型指南:硬實時、功能安全與生態(tài)怎么選
技術(shù)解析 | 睿擎平臺AMP虛擬網(wǎng)卡:突破雙系統(tǒng)通信瓶頸的創(chuàng)新方案
輪詢操作系統(tǒng)的原理
單片機的操作系統(tǒng)
嵌入式實時操作系統(tǒng)的特點
如何選擇合適的實時操作系統(tǒng)
RISC-V 虛擬化堆棧和硬件的最新進展
鴻道Intewell:以創(chuàng)新國產(chǎn)實時操作系統(tǒng)助力多產(chǎn)業(yè)發(fā)展
實時和通用操作系統(tǒng)通過虛擬化結(jié)合起來
評論