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