當(dāng)他們遷移到新的硬件平臺(tái)時(shí),幫助保護(hù)他們的舊軟件投資。這為嵌入式開發(fā)人員提供了與多年來在新服務(wù)器平臺(tái)上運(yùn)行舊操作系統(tǒng) (OS) 和應(yīng)用程序的 IT 組織相同的優(yōu)勢。隨著硬件平臺(tái)從單核轉(zhuǎn)向多核 32 位到 64 位架構(gòu)并增加新的連接,例如 Wi-Fi、藍(lán)牙或蜂窩通信,這項(xiàng)投資尤其關(guān)鍵。
隨著物聯(lián)網(wǎng) (IoT) 的出現(xiàn),嵌入式系統(tǒng)重獲新生,并且隨著它們參與機(jī)器對機(jī)器 (M2M) 通信的非常相關(guān)的子集,它們現(xiàn)在的發(fā)展速度比以往任何時(shí)候都快。歷史短。這些傳統(tǒng)專用系統(tǒng)現(xiàn)在必須發(fā)展到具有多個(gè)內(nèi)核的新架構(gòu)平臺(tái),并且通常擁有或需要 64 位架構(gòu),而不僅僅是 32 位地址空間。添加新的通信媒介(如 Wi-Fi、藍(lán)牙或蜂窩)以及新的 GUI 要求(如觸摸、滑動(dòng)和拖動(dòng))給嵌入式設(shè)計(jì)人員帶來了一系列全新的復(fù)雜性。
然而,嵌入式開發(fā)人員現(xiàn)在可以使用虛擬化范式,因?yàn)樗麄冊噲D發(fā)展他們的遺留系統(tǒng)以滿足這些新要求,而無需完全重寫或重新設(shè)計(jì)現(xiàn)有系統(tǒng);因此,虛擬化可以幫助開發(fā)人員管理將他們的系統(tǒng)帶入當(dāng)今互聯(lián)世界的成本和時(shí)間。
一個(gè)棘手問題的優(yōu)雅解決方案
有一種技術(shù)可以讓嵌入式開發(fā)人員保留他們的遺留軟件系統(tǒng),即使它周圍的世界——包括它運(yùn)行的硬件——處于一個(gè)不斷變化的世界。該技術(shù)是虛擬化。該技術(shù)已在企業(yè)軟件世界中使用多年,使 IT 部門能夠運(yùn)行多個(gè)版本的 IT 應(yīng)用程序和操作系統(tǒng),即使它們已經(jīng)過時(shí)很長時(shí)間。它在嵌入式領(lǐng)域還沒有被廣泛使用,主要是因?yàn)榍度胧较到y(tǒng)的刷新率沒有企業(yè)領(lǐng)域那么快,而且還因?yàn)槠髽I(yè)管理程序不能像桌面一樣滿足嵌入式尺寸和性能要求OS 的使用頻率低于實(shí)時(shí)操作系統(tǒng) (RTOS)。
在研究嵌入式管理程序如何使嵌入式開發(fā)人員受益之前,讓我們更詳細(xì)地研究一下虛擬化。虛擬化是一種技術(shù),它為在其上運(yùn)行的軟件(包括處理器、內(nèi)存和設(shè)備)提供硬件的“虛擬”表示。在我們的日常生活中,一個(gè)很好的例子是運(yùn)行在 Apple Mac 上的管理程序,它允許 Microsoft Windows 在同一硬件平臺(tái)上與 Mac OS 一起運(yùn)行,因?yàn)樗鼮?Windows 提供了“虛擬”PC。這是類型 2 管理程序的一個(gè)很好的示例,其中管理程序?qū)嶋H上作為應(yīng)用程序運(yùn)行在本機(jī)操作系統(tǒng)之上,然后“來賓”操作系統(tǒng)運(yùn)行在它之上。這帶來了本機(jī)操作系統(tǒng)仍在控制中并且客戶操作系統(tǒng)同時(shí)運(yùn)行的優(yōu)勢,因?yàn)樗举|(zhì)上是作為應(yīng)用程序運(yùn)行的。但是,該解決方案中的多層軟件存在巨大的性能問題,而且該技術(shù)對于所有嵌入式 RTOS 的使用都不是很便攜。
還有另一種虛擬化解決方案,通常稱為“Type 1”或“裸機(jī)”,它不依賴于本機(jī)操作系統(tǒng),直接與硬件交互,為來賓提供“虛擬”硬件。這越來越接近于滿足嵌入式開發(fā)人員的需求,因?yàn)樗隙ū?Type 2 更高效。但是,如圖 1 所示,它仍然依賴于一個(gè)“助手”操作系統(tǒng),它的大小接近在類型 2 的情況下到本機(jī)操作系統(tǒng)。盡管它被稱為“裸機(jī)”,但這并不意味著它具有嵌入式開發(fā)人員所需的實(shí)時(shí)或確定性屬性。
因此,嵌入式開發(fā)人員可以使用不同種類的管理程序來利用虛擬化解決方案。由于構(gòu)建高效的嵌入式管理程序所需的設(shè)計(jì)存在一些固有差異,因此需要一個(gè)新名稱來區(qū)分類型 1,因此嵌入式管理程序被稱為類型 0 管理程序。
比較 Type 0 和 Type 1 時(shí)的兩個(gè)關(guān)鍵區(qū)別是 1) 大小和 2) 實(shí)時(shí)性能。通過移除 Type 1 中使用的“輔助”操作系統(tǒng)并創(chuàng)建真正的裸機(jī)管理程序,運(yùn)行時(shí)內(nèi)存需求從 GB 下降到 MB,靜態(tài)代碼大小從 MB 下降到 KB。此外,通過移除重量級的輔助操作系統(tǒng)并用小型嵌入式實(shí)時(shí)內(nèi)核或“分離內(nèi)核”替換它來分離資源,現(xiàn)在可以實(shí)現(xiàn)實(shí)時(shí)確定性。此外,通過利用現(xiàn)代處理器中的硬件虛擬化功能,使用管理程序的性能開銷達(dá)到本機(jī)性能的 95% 以上。
現(xiàn)實(shí)世界的嵌入式虛擬化使用
確定嵌入式虛擬機(jī)管理程序可以提供合理的嵌入式占用空間和實(shí)時(shí)性能后,我們現(xiàn)在可以專注于嵌入式開發(fā)人員在將現(xiàn)有系統(tǒng)遷移到下一代連接嵌入式設(shè)備時(shí)的好處。這些新系統(tǒng)的主要目標(biāo)如下:
遷移到既可以是多核又可以是 64 位的現(xiàn)代硬件平臺(tái)
與現(xiàn)代標(biāo)準(zhǔn)用戶界面的兼容性
連接性增加,隨之而來的是對更高安全性的要求
嵌入式管理程序如何幫助解決所有這些問題,并減少遺留系統(tǒng)的重寫代碼量?管理程序可以很好地完成一些僅使用標(biāo)準(zhǔn) RTOS 難以實(shí)現(xiàn)的事情。
抽象底層硬件
這些管理程序功能中的第一個(gè)功能是從 RTOS 和在其上運(yùn)行的應(yīng)用程序中抽象出底層硬件。這在將現(xiàn)有的 RTOS 和應(yīng)用程序遷移到新的硬件平臺(tái)時(shí)確實(shí)很有幫助,因?yàn)楣芾沓绦蚩梢允固摂M硬件看起來就像原始硬件一樣,并且可以應(yīng)用于內(nèi)存、處理器和設(shè)備。
因此,由于新的物理硬件可以是帶有一組新的現(xiàn)代設(shè)備的多核 64 位處理器,因此管理程序可以提供一個(gè) 32 位單核虛擬處理器,新物理設(shè)備映射到傳統(tǒng)的虛擬版本設(shè)備。這可以防止立即遷移到新的 SMP、64 位 RTOS,并且還減少了為板上的新設(shè)備創(chuàng)建新 BSP 的需要。這也是引入新連接選項(xiàng)(例如 Wi-Fi 或蜂窩網(wǎng)絡(luò))的一種相對優(yōu)雅的方式,因?yàn)榭梢酝ㄟ^設(shè)備虛擬化使它們看起來像普通的以太網(wǎng)設(shè)備。
多操作系統(tǒng)促進(jìn)新接口、安全性
虛擬化的第二個(gè)關(guān)鍵能力是允許多個(gè)操作系統(tǒng)在單個(gè)硬件平臺(tái)上運(yùn)行。這允許嵌入式開發(fā)人員保持其遺留系統(tǒng)完好無損,并通過引入另一個(gè)并行運(yùn)行的操作系統(tǒng)來添加新功能。這可能看起來非常低效,但隨著硬件技術(shù)的飛躍和內(nèi)存成本的提高,具有硬件虛擬化支持的現(xiàn)代多核系統(tǒng)實(shí)際上可以運(yùn)行多個(gè)操作系統(tǒng)而不會(huì)降低性能;這也比必須采購過時(shí)的硬件組件便宜得多。當(dāng)將新的連接介質(zhì)引入系統(tǒng)時(shí),這種多操作系統(tǒng)場景是另一個(gè)有趣的設(shè)計(jì)考慮因素,而不是虛擬化新設(shè)備,
除了引入遺留系統(tǒng)之外,這種多操作系統(tǒng)場景還為連接的嵌入式系統(tǒng)帶來了一些有趣的設(shè)計(jì)優(yōu)勢,并有助于引入新的需求,例如現(xiàn)代用戶界面和額外的安全性。嵌入式開發(fā)人員一直面臨的一個(gè)問題是嵌入式系統(tǒng)的標(biāo)準(zhǔn)用戶界面,因?yàn)闃?biāo)準(zhǔn)的基于 GUI 的操作系統(tǒng)傳統(tǒng)上對于實(shí)時(shí)系統(tǒng)來說太大或太慢。對于 RTOS,GUI 必須從頭開始構(gòu)建,因此不具備我們在手機(jī)、平板電腦和計(jì)算機(jī)上習(xí)慣的所有觸摸/滑動(dòng)功能。
通過使用嵌入式虛擬機(jī)管理程序,開發(fā)人員也可以得到他們的蛋糕并吃掉它。通過在一個(gè)虛擬機(jī) (VM) 中安裝 RTOS 并在另一個(gè) VM 中安裝更傳統(tǒng)的 GUI 操作系統(tǒng)(如 Android),實(shí)時(shí)部分得到處理,并內(nèi)置了用戶友好的標(biāo)準(zhǔn) GUI;通過使用多核處理器,虛擬機(jī)管理程序可以為每個(gè)處理器分配自己的專用處理器、內(nèi)存和資源。
難題的最后一塊是安全性——這可能是聯(lián)網(wǎng)嵌入式設(shè)備最熱門的話題之一,因?yàn)檫@些曾經(jīng)專用和專有的系統(tǒng)現(xiàn)在正在通過開放的互聯(lián)網(wǎng)連接和控制;因此,它們現(xiàn)在可能成為網(wǎng)絡(luò)犯罪和網(wǎng)絡(luò)恐怖主義的目標(biāo)。通過使用分離內(nèi)核和嵌入式管理程序,系統(tǒng)的不同部分可以很容易地隔離和保護(hù)。
例如,連接到 Internet 的虛擬機(jī)通常不同于控制某物或存儲(chǔ)信息的虛擬機(jī),后者通常是惡意攻擊的主要目標(biāo)。因此,即使一個(gè)虛擬機(jī)被感染,這種感染也不會(huì)傳播到另一臺(tái)虛擬機(jī),因?yàn)榉蛛x內(nèi)核將它們分開,就像它們在物理上獨(dú)立的硬件上運(yùn)行時(shí)一樣。
嵌入式虛擬化是真的嗎?
總之,被稱為嵌入式虛擬機(jī)管理程序的虛擬化技術(shù)基于實(shí)時(shí)分離內(nèi)核,可以幫助嵌入式開發(fā)人員將他們的傳統(tǒng)嵌入式系統(tǒng)帶入下一代連接的多核系統(tǒng),并具有用戶友好的 GUI 和增加的安全性以防止惡意威脅。這一切似乎都好得令人難以置信。在 LynuxWorks,我們開發(fā)了一個(gè)名為 LynxSecure 的分離內(nèi)核和嵌入式虛擬機(jī)管理程序,現(xiàn)在它已經(jīng)到了第五代,它正在幫助嵌入式開發(fā)人員實(shí)現(xiàn)他們的新設(shè)計(jì)目標(biāo)——按時(shí)、按預(yù)算。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
20255瀏覽量
252332 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20449瀏覽量
334106 -
GUI
+關(guān)注
關(guān)注
3文章
697瀏覽量
43473
發(fā)布評論請先 登錄
什么是嵌入式應(yīng)用開發(fā)?
C語言單元測試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用
嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)
嵌入式工控機(jī):工業(yè)自動(dòng)化的核心運(yùn)算單元
如何采用SAFERTOS和ESM保護(hù)嵌入式系統(tǒng)安全
嵌入式軟件測試與專業(yè)測試工具的必要性深度解析
華清遠(yuǎn)見嵌入式虛擬仿真實(shí)驗(yàn)教學(xué)平臺(tái)及師資課程一體化建設(shè)方案
RISC-V 虛擬化堆棧和硬件的最新進(jìn)展
嵌入式工業(yè)顯示器如何提升自動(dòng)化設(shè)備的操作效率??
Linux嵌入式和單片機(jī)嵌入式的區(qū)別?
安科瑞嵌入式智能儀表:引領(lǐng)傳統(tǒng)配電系統(tǒng)數(shù)字化升級的先鋒力量
飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」議程公布
嵌入式虛擬化保護(hù)傳統(tǒng)投資
評論