【解密英特爾ACRN:一個專為物聯網而設計的Hypervisor】隨著物聯網規模呈指數級增長,物聯網開發者需要支持各種不同的硬件資源、操作系統、軟件工具/應用程序。這是一個很大的挑戰,因為許多互聯的物聯網設備在資源上會受到各種限制的,例如運行內存空間,閃存大小,CPU核的個數。虛擬化有助于滿足這些廣泛的需求,但是現有的虛擬化方案無法為物聯網開發提供同時滿足尺寸、靈活性和功能的適當的組合。
ACRN的設計有所不同。在2018年的Linux嵌入式大會上發布的ACRN,是一款靈活的、輕量級的參考hypervisor,以實時性和關鍵的安全性為設計出發點,并且通過開源平臺為精簡嵌入式開發進行優化。
ACRN的最大優勢之一是尺寸小,發布時大約只有25K行代碼。英特爾開源技術中心為項目的發布貢獻了源代碼。英特爾公司副總裁兼開源技術中心總經理ImadSousou表示,“ACRN的想法來自于我們為用戶提供虛擬技術的工作。嵌入式物聯網開發工作量很大。使用hypervisor技術,具有不同重要性的負載可以被整合到一個平臺上,從而降低開發和部署成本,并且允許更精簡的系統架構。”
關于名字:ACRN不是縮寫,發音為“acorn”,(acorn英文意思為橡子)寓意雖然開始很小,但最終可以長的很大,與該項目希望通過社區參與成長的方式相似。ACRN有兩個關鍵組成:hypervisor和ACRN設備模塊。ACRNHypervisor是一個Type1的hypervior,可以直接運行于裸機上。ACRN設備模塊是針對虛擬設備仿真的參考框架實現,它提供豐富的I/O虛擬化支持,目前計劃支持音頻、視頻、圖形和USB。隨著社區發展,預計會有更多設備虛擬化功能加入。
如何工作?
ACRNHypervisor運行在裸機上,然后在其上可以運行一個基于Linux的服務操作系統(SOS),然后可以同時運行多個客戶操作系統,以便整合工作負載。ACRNhypervisor為ServiceOS創造了第一個虛擬環境,然后啟動GuestOS。ServiceOS運行本地設備驅動程序來管理硬件,向GuestOS提供I/Omediation。
ServiceOS以系統最高優先級的虛擬機運行,以滿足時間對敏感需求和系統服務質量(QoS)的要求。ServiceOS目前可以運行ClearLinux,但是ACRN也支持其它Linux的發行版或者專有RTOS作為ServiceOS或GuestOS。誠邀社區幫助來一起開發支持其他版本的ServiceOS,并使用ACRN參考堆棧支持其他版本的GuestOS,例如:其它Linux*發行版、Android、Windows或者專有RTOS。
為了保持ACRNhypervisor代碼庫盡可能小且高效,大部分設備模塊的實現駐留在ServiceOS,用來提供設備共享和其它功能。目的是保證在資源受限的設備上實現小尺寸,低延遲的代碼庫的優化,為物聯網開發平臺構建虛擬化特定功能,如圖形、媒體、音頻、圖像以及其它需要分享資源的I/O設備。通過這種方法,ACRN填補了用于大數據中心的hypervisor和直接硬件分區hypervisor之間的空白,是各種物聯網開發的理想選擇。
一個實例是車輛中的軟件定義駕駛艙(SDC)。使用ACRN作為參考實現,供應商可以構建解決方案,包括儀表盤、車載娛樂系統(IVI)、一個或者更多的后排乘客娛樂系統(RSE)等。考慮到整體系統安全問題,IVI和RSE系統可以作為隔離的虛擬機(VM)運行。軟件定義工業系統(SDIS)是另一個很好的例子,包括網絡物理系統、物聯網、云計算和認知計算。ACRN可以幫助SDIS整合工業工作負載,并且可以跨系統實現靈活調度。這有助于為用戶帶來益處,包括低功耗、簡化安全性、提高可靠性,以及簡化系統管理等。
ACRN的早期支持者包括英特爾、ADLink凌華科技、Aptiv、LG電子和東軟。社區開發者也歡迎下載代碼,并參與ACRNGitHub的貢獻。更多的使用案例信息和參與信息,請訪問ACRN官網。歡迎參加于2018年10月22-24日在英國愛丁堡舉辦的開源峰會兼嵌入式Linux大會(歐洲),屆時會針對Linux、云、容器、AI、社區等舉辦100多場會議。