通過類型1的虛擬機(jī) Hypervisor 實(shí)現(xiàn)多 OS 系統(tǒng)的應(yīng)用
在今天嵌入式設(shè)備中具備的多核處理器可提供更強(qiáng)大的處理能力和連接選項。這些設(shè)備使多個操作系統(tǒng)的整合成為引進(jìn)互聯(lián)性的可行安全方法,同時確保更重要的功能的執(zhí)行。即使是在非常注重安全的行業(yè),如汽車業(yè),消費(fèi)者現(xiàn)在也期待車載信息娛樂系統(tǒng)可提供智能手機(jī)和平板電腦所具備的應(yīng)用程序。
在物聯(lián)網(wǎng)和車聯(lián)網(wǎng)出現(xiàn)以前, 安全性和可靠性是通過物理分離實(shí)現(xiàn)的,通過同一或獨(dú)立的面板上多個單獨(dú)的處理器以確保設(shè)計的穩(wěn)健性。有了現(xiàn)在的整合的嵌入式系統(tǒng),引入連接性的一個推薦的方法是使用多個操作系統(tǒng),由類型1 Hypervisor 實(shí)行分離,實(shí)際上分離和虛擬化設(shè)備資源,確保必要的汽車功能優(yōu)先于連接應(yīng)用程序的功能。
圖3說明了一個 Hypervisor,如 Mentor Graphics 的 Hypervisor,如何被用于汽車信息娛樂系統(tǒng),該系統(tǒng)的連接應(yīng)用程序功能是 Android 的而其他車載信息娛樂系統(tǒng)則是基于 Linux 的。
一個 Hypervisor 不僅僅是如圖3所示的簡單分離,它還提供了一種機(jī)制限制周邊設(shè)備進(jìn)入特定的應(yīng)用程序域。就車載信息娛樂系統(tǒng)而言,我們可能想要限制對車載 CAN 總線的使用,只允許車載信息娛樂系統(tǒng)接入CAN數(shù)據(jù),而聯(lián)網(wǎng)的 Android 應(yīng)用程序接入數(shù)據(jù)只能通過進(jìn)程間通信(IPC)和基于 Linux 車載信息娛樂系統(tǒng)應(yīng)用程序。同時,我們想要 Linux 和 Android 都可以使用 本地的記憶卡查看媒體文件。圖4說明了一個 Hypervisor 如何允許我們直接映射及準(zhǔn)虛擬化外圍設(shè)備。這使得開發(fā)者能夠限制訪問CAN總線及實(shí)現(xiàn)如記憶卡等其它資源的共享。
用一個Hypervisor來分離和共享外圍設(shè)備
在真實(shí)場景中測試可靠性
到現(xiàn)在為止我們已經(jīng)說明了設(shè)計物聯(lián)網(wǎng)系統(tǒng)的兩種可能的方法,實(shí)時操作系統(tǒng)的使用和類型1 Hypervisor。當(dāng)然多種不同的變更和理想的方法還要取決于具體的設(shè)備。然而所有連接系統(tǒng)都會受益于某種程度的測試以確保其實(shí)地操作的正確性。對連接設(shè)備的自動化安全峰值測試和壓力測試就是一個例子,說明協(xié)議;蜻^程控制功能的失敗是可以檢測的。此外,設(shè)備的功能性健康是可以在模擬攻擊中確定的。應(yīng)該執(zhí)行的其他測試包括發(fā)送無效或分散的數(shù)據(jù)包,執(zhí)行測試框架,探測已知的軟件棧的漏洞。執(zhí)行這些測試可以增加連接設(shè)備在實(shí)際應(yīng)用中的魯棒性。
可更新性設(shè)計
移動設(shè)備的用戶熟知需經(jīng)常性升級設(shè)備,修補(bǔ)漏洞,添加安全更新或增加設(shè)備性能 -- 所有這些都毫不費(fèi)力地通過“空中下載技術(shù)”來完成。基于實(shí)時操作系統(tǒng)的進(jìn)程模式和使用類型1 Hypervisor 都能促進(jìn)嵌入式系統(tǒng)的設(shè)計,該系統(tǒng)可以一種安全的方式通過空中下載技術(shù)實(shí)現(xiàn)更新。通過分離可不斷加載和卸載的應(yīng)用子系統(tǒng),這兩種方法可隨著時間的推移更新特定子系統(tǒng),修復(fù)漏洞或在開發(fā)和實(shí)際應(yīng)用時解決可靠性問題。
結(jié)論
物聯(lián)網(wǎng)設(shè)備的廣度和相關(guān)功能經(jīng)常需要開發(fā)人員集成來自多種途徑的代碼,包括國內(nèi)的,商業(yè)的和開源的。所有這些都會增加對物聯(lián)網(wǎng)(IoT)聯(lián)網(wǎng)設(shè)備的靈敏度和可靠性的負(fù)面沖擊。使用包含進(jìn)程模式的實(shí)時操作系統(tǒng)來分離應(yīng)用子系統(tǒng)和使用類型1 Hypervisor 來整合多個操作系統(tǒng)對于在應(yīng)用程序和系統(tǒng)中引進(jìn)互聯(lián)性是有效途徑, 因后者在執(zhí)行過程中需要較高水平或可靠性。
除了選擇合適的系統(tǒng)架構(gòu)和技術(shù)方法,設(shè)計師還必須及時添加額外的測試來確保正確的操作,考慮設(shè)備的整個操作生命周期,具備快速,無縫,盡可能輕松地更新設(shè)備軟件的能力。