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