當他們遷移到新的硬件平臺時,幫助保護他們的舊軟件投資。這為嵌入式開發人員提供了與多年來在新服務器平臺上運行舊操作系統 (OS) 和應用程序的 IT 組織相同的優勢。隨著硬件平臺從單核轉向多核 32 位到 64 位架構并增加新的連接,例如 Wi-Fi、藍牙或蜂窩通信,這項投資尤其關鍵。
隨著物聯網 (IoT) 的出現,嵌入式系統重獲新生,并且隨著它們參與機器對機器 (M2M) 通信的非常相關的子集,它們現在的發展速度比以往任何時候都快。歷史短。這些傳統專用系統現在必須發展到具有多個內核的新架構平臺,并且通常擁有或需要 64 位架構,而不僅僅是 32 位地址空間。添加新的通信媒介(如 Wi-Fi、藍牙或蜂窩)以及新的 GUI 要求(如觸摸、滑動和拖動)給嵌入式設計人員帶來了一系列全新的復雜性。
然而,嵌入式開發人員現在可以使用虛擬化范式,因為他們試圖發展他們的遺留系統以滿足這些新要求,而無需完全重寫或重新設計現有系統;因此,虛擬化可以幫助開發人員管理將他們的系統帶入當今互聯世界的成本和時間。
一個棘手問題的優雅解決方案
有一種技術可以讓嵌入式開發人員保留他們的遺留軟件系統,即使它周圍的世界——包括它運行的硬件——處于一個不斷變化的世界。該技術是虛擬化。該技術已在企業軟件世界中使用多年,使 IT 部門能夠運行多個版本的 IT 應用程序和操作系統,即使它們已經過時很長時間。它在嵌入式領域還沒有被廣泛使用,主要是因為嵌入式系統的刷新率沒有企業領域那么快,而且還因為企業管理程序不能像桌面一樣滿足嵌入式尺寸和性能要求OS 的使用頻率低于實時操作系統 (RTOS)。
在研究嵌入式管理程序如何使嵌入式開發人員受益之前,讓我們更詳細地研究一下虛擬化。虛擬化是一種技術,它為在其上運行的軟件(包括處理器、內存和設備)提供硬件的“虛擬”表示。在我們的日常生活中,一個很好的例子是運行在 Apple Mac 上的管理程序,它允許 Microsoft Windows 在同一硬件平臺上與 Mac OS 一起運行,因為它為 Windows 提供了“虛擬”PC。這是類型 2 管理程序的一個很好的示例,其中管理程序實際上作為應用程序運行在本機操作系統之上,然后“來賓”操作系統運行在它之上。這帶來了本機操作系統仍在控制中并且客戶操作系統同時運行的優勢,因為它本質上是作為應用程序運行的。但是,該解決方案中的多層軟件存在巨大的性能問題,而且該技術對于所有嵌入式 RTOS 的使用都不是很便攜。
還有另一種虛擬化解決方案,通常稱為“Type 1”或“裸機”,它不依賴于本機操作系統,直接與硬件交互,為來賓提供“虛擬”硬件。這越來越接近于滿足嵌入式開發人員的需求,因為它肯定比 Type 2 更高效。但是,如圖 1 所示,它仍然依賴于一個“助手”操作系統,它的大小接近在類型 2 的情況下到本機操作系統。盡管它被稱為“裸機”,但這并不意味著它具有嵌入式開發人員所需的實時或確定性屬性。
因此,嵌入式開發人員可以使用不同種類的管理程序來利用虛擬化解決方案。由于構建高效的嵌入式管理程序所需的設計存在一些固有差異,因此需要一個新名稱來區分類型 1,因此嵌入式管理程序被稱為類型 0 管理程序。
比較 Type 0 和 Type 1 時的兩個關鍵區別是 1) 大小和 2) 實時性能。通過移除 Type 1 中使用的“輔助”操作系統并創建真正的裸機管理程序,運行時內存需求從 GB 下降到 MB,靜態代碼大小從 MB 下降到 KB。此外,通過移除重量級的輔助操作系統并用小型嵌入式實時內核或“分離內核”替換它來分離資源,現在可以實現實時確定性。此外,通過利用現代處理器中的硬件虛擬化功能,使用管理程序的性能開銷達到本機性能的 95% 以上。
現實世界的嵌入式虛擬化使用
確定嵌入式虛擬機管理程序可以提供合理的嵌入式占用空間和實時性能后,我們現在可以專注于嵌入式開發人員在將現有系統遷移到下一代連接嵌入式設備時的好處。這些新系統的主要目標如下:
遷移到既可以是多核又可以是 64 位的現代硬件平臺
與現代標準用戶界面的兼容性
連接性增加,隨之而來的是對更高安全性的要求
嵌入式管理程序如何幫助解決所有這些問題,并減少遺留系統的重寫代碼量?管理程序可以很好地完成一些僅使用標準 RTOS 難以實現的事情。
抽象底層硬件
這些管理程序功能中的第一個功能是從 RTOS 和在其上運行的應用程序中抽象出底層硬件。這在將現有的 RTOS 和應用程序遷移到新的硬件平臺時確實很有幫助,因為管理程序可以使虛擬硬件看起來就像原始硬件一樣,并且可以應用于內存、處理器和設備。
因此,由于新的物理硬件可以是帶有一組新的現代設備的多核 64 位處理器,因此管理程序可以提供一個 32 位單核虛擬處理器,新物理設備映射到傳統的虛擬版本設備。這可以防止立即遷移到新的 SMP、64 位 RTOS,并且還減少了為板上的新設備創建新 BSP 的需要。這也是引入新連接選項(例如 Wi-Fi 或蜂窩網絡)的一種相對優雅的方式,因為可以通過設備虛擬化使它們看起來像普通的以太網設備。
多操作系統促進新接口、安全性
虛擬化的第二個關鍵能力是允許多個操作系統在單個硬件平臺上運行。這允許嵌入式開發人員保持其遺留系統完好無損,并通過引入另一個并行運行的操作系統來添加新功能。這可能看起來非常低效,但隨著硬件技術的飛躍和內存成本的提高,具有硬件虛擬化支持的現代多核系統實際上可以運行多個操作系統而不會降低性能;這也比必須采購過時的硬件組件便宜得多。當將新的連接介質引入系統時,這種多操作系統場景是另一個有趣的設計考慮因素,而不是虛擬化新設備,
除了引入遺留系統之外,這種多操作系統場景還為連接的嵌入式系統帶來了一些有趣的設計優勢,并有助于引入新的需求,例如現代用戶界面和額外的安全性。嵌入式開發人員一直面臨的一個問題是嵌入式系統的標準用戶界面,因為標準的基于 GUI 的操作系統傳統上對于實時系統來說太大或太慢。對于 RTOS,GUI 必須從頭開始構建,因此不具備我們在手機、平板電腦和計算機上習慣的所有觸摸/滑動功能。
通過使用嵌入式虛擬機管理程序,開發人員也可以得到他們的蛋糕并吃掉它。通過在一個虛擬機 (VM) 中安裝 RTOS 并在另一個 VM 中安裝更傳統的 GUI 操作系統(如 Android),實時部分得到處理,并內置了用戶友好的標準 GUI;通過使用多核處理器,虛擬機管理程序可以為每個處理器分配自己的專用處理器、內存和資源。
難題的最后一塊是安全性——這可能是聯網嵌入式設備最熱門的話題之一,因為這些曾經專用和專有的系統現在正在通過開放的互聯網連接和控制;因此,它們現在可能成為網絡犯罪和網絡恐怖主義的目標。通過使用分離內核和嵌入式管理程序,系統的不同部分可以很容易地隔離和保護。
例如,連接到 Internet 的虛擬機通常不同于控制某物或存儲信息的虛擬機,后者通常是惡意攻擊的主要目標。因此,即使一個虛擬機被感染,這種感染也不會傳播到另一臺虛擬機,因為分離內核將它們分開,就像它們在物理上獨立的硬件上運行時一樣。
嵌入式虛擬化是真的嗎?
總之,被稱為嵌入式虛擬機管理程序的虛擬化技術基于實時分離內核,可以幫助嵌入式開發人員將他們的傳統嵌入式系統帶入下一代連接的多核系統,并具有用戶友好的 GUI 和增加的安全性以防止惡意威脅。這一切似乎都好得令人難以置信。在 LynuxWorks,我們開發了一個名為 LynxSecure 的分離內核和嵌入式虛擬機管理程序,現在它已經到了第五代,它正在幫助嵌入式開發人員實現他們的新設計目標——按時、按預算。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19167瀏覽量
229153 -
嵌入式
+關注
關注
5068文章
19021瀏覽量
303327 -
GUI
+關注
關注
3文章
649瀏覽量
39550
發布評論請先 登錄
相關推薦
評論