【解密英特爾ACRN:一個(gè)專為物聯(lián)網(wǎng)而設(shè)計(jì)的Hypervisor】隨著物聯(lián)網(wǎng)規(guī)模呈指數(shù)級(jí)增長(zhǎng),物聯(lián)網(wǎng)開發(fā)者需要支持各種不同的硬件資源、操作系統(tǒng)、軟件工具/應(yīng)用程序。這是一個(gè)很大的挑戰(zhàn),因?yàn)樵S多互聯(lián)的物聯(lián)網(wǎng)設(shè)備在資源上會(huì)受到各種限制的,例如運(yùn)行內(nèi)存空間,閃存大小,CPU核的個(gè)數(shù)。虛擬化有助于滿足這些廣泛的需求,但是現(xiàn)有的虛擬化方案無法為物聯(lián)網(wǎng)開發(fā)提供同時(shí)滿足尺寸、靈活性和功能的適當(dāng)?shù)慕M合。
ACRN的設(shè)計(jì)有所不同。在2018年的Linux嵌入式大會(huì)上發(fā)布的ACRN,是一款靈活的、輕量級(jí)的參考hypervisor,以實(shí)時(shí)性和關(guān)鍵的安全性為設(shè)計(jì)出發(fā)點(diǎn),并且通過開源平臺(tái)為精簡(jiǎn)嵌入式開發(fā)進(jìn)行優(yōu)化。
ACRN的最大優(yōu)勢(shì)之一是尺寸小,發(fā)布時(shí)大約只有25K行代碼。英特爾開源技術(shù)中心為項(xiàng)目的發(fā)布貢獻(xiàn)了源代碼。英特爾公司副總裁兼開源技術(shù)中心總經(jīng)理ImadSousou表示,“ACRN的想法來自于我們?yōu)橛脩籼峁┨摂M技術(shù)的工作。嵌入式物聯(lián)網(wǎng)開發(fā)工作量很大。使用hypervisor技術(shù),具有不同重要性的負(fù)載可以被整合到一個(gè)平臺(tái)上,從而降低開發(fā)和部署成本,并且允許更精簡(jiǎn)的系統(tǒng)架構(gòu)?!?/p>
關(guān)于名字:ACRN不是縮寫,發(fā)音為“acorn”,(acorn英文意思為橡子)寓意雖然開始很小,但最終可以長(zhǎng)的很大,與該項(xiàng)目希望通過社區(qū)參與成長(zhǎng)的方式相似。ACRN有兩個(gè)關(guān)鍵組成:hypervisor和ACRN設(shè)備模塊。ACRNHypervisor是一個(gè)Type1的hypervior,可以直接運(yùn)行于裸機(jī)上。ACRN設(shè)備模塊是針對(duì)虛擬設(shè)備仿真的參考框架實(shí)現(xiàn),它提供豐富的I/O虛擬化支持,目前計(jì)劃支持音頻、視頻、圖形和USB。隨著社區(qū)發(fā)展,預(yù)計(jì)會(huì)有更多設(shè)備虛擬化功能加入。
如何工作?
ACRNHypervisor運(yùn)行在裸機(jī)上,然后在其上可以運(yùn)行一個(gè)基于Linux的服務(wù)操作系統(tǒng)(SOS),然后可以同時(shí)運(yùn)行多個(gè)客戶操作系統(tǒng),以便整合工作負(fù)載。ACRNhypervisor為ServiceOS創(chuàng)造了第一個(gè)虛擬環(huán)境,然后啟動(dòng)GuestOS。ServiceOS運(yùn)行本地設(shè)備驅(qū)動(dòng)程序來管理硬件,向GuestOS提供I/Omediation。
ServiceOS以系統(tǒng)最高優(yōu)先級(jí)的虛擬機(jī)運(yùn)行,以滿足時(shí)間對(duì)敏感需求和系統(tǒng)服務(wù)質(zhì)量(QoS)的要求。ServiceOS目前可以運(yùn)行ClearLinux,但是ACRN也支持其它Linux的發(fā)行版或者專有RTOS作為ServiceOS或GuestOS。誠(chéng)邀社區(qū)幫助來一起開發(fā)支持其他版本的ServiceOS,并使用ACRN參考堆棧支持其他版本的GuestOS,例如:其它Linux*發(fā)行版、Android、Windows或者專有RTOS。
為了保持ACRNhypervisor代碼庫(kù)盡可能小且高效,大部分設(shè)備模塊的實(shí)現(xiàn)駐留在ServiceOS,用來提供設(shè)備共享和其它功能。目的是保證在資源受限的設(shè)備上實(shí)現(xiàn)小尺寸,低延遲的代碼庫(kù)的優(yōu)化,為物聯(lián)網(wǎng)開發(fā)平臺(tái)構(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)度。這有助于為用戶帶來益處,包括低功耗、簡(jiǎn)化安全性、提高可靠性,以及簡(jiǎn)化系統(tǒng)管理等。
ACRN的早期支持者包括英特爾、ADLink凌華科技、Aptiv、LG電子和東軟。社區(qū)開發(fā)者也歡迎下載代碼,并參與ACRNGitHub的貢獻(xiàn)。更多的使用案例信息和參與信息,請(qǐng)?jiān)L問ACRN官網(wǎng)。歡迎參加于2018年10月22-24日在英國(guó)愛丁堡舉辦的開源峰會(huì)兼嵌入式Linux大會(huì)(歐洲),屆時(shí)會(huì)針對(duì)Linux、云、容器、AI、社區(qū)等舉辦100多場(chǎng)會(huì)議。