- 相關(guān)推薦
嵌入式系統(tǒng)的虛擬化怎么實(shí)現(xiàn)
運(yùn)行在 UltraScale+ ™ MPSoC 上的 Xen 管理程序,可提供穩(wěn)健可靠的硬件加速虛擬化和易用性,有助于嵌入式系統(tǒng)設(shè)計(jì)人員最大化硬件投資回報(bào)。那么怎么在在嵌入式系統(tǒng)上實(shí)現(xiàn)虛擬化呢?下面yjbys為大家分享嵌入式系統(tǒng)虛擬化的方法,希望對(duì)大家學(xué)習(xí)嵌入式有所幫助!
虛擬化對(duì)桌面系統(tǒng)已是司空見(jiàn)慣,但對(duì)嵌入式系統(tǒng)設(shè)計(jì)人員來(lái)說(shuō),卻一直是一個(gè)棘手的問(wèn)題,因?yàn)榍度胧较到y(tǒng)設(shè)計(jì)人員需要優(yōu)化 SoC 系統(tǒng)的利用率和性能。
傳統(tǒng)上,虛擬化難以用于嵌入式領(lǐng)域,是因?yàn)槿狈瓤珊?jiǎn)化解決方案實(shí)現(xiàn)工作,又能提供滿(mǎn)意性能的合適硬件資源。因此,需要在同一處理器上運(yùn)行異構(gòu)軟件協(xié)議棧的系統(tǒng)不得不依賴(lài)于人工管理各種軟件協(xié)議棧,或不得不接受未加速虛擬化所帶來(lái)的更大時(shí)延和性能特性下降等缺陷。
位于每個(gè) Zynq UltraScale+ MPSoC 核心的 ARM® v8 架構(gòu)能確保真正的硬件加速虛擬化,克服這些實(shí)現(xiàn)障礙。此外,Xen 管理程序提供的易用性為在嵌入式系統(tǒng)中實(shí)現(xiàn)桌面級(jí)性能和生產(chǎn)力奠定了基礎(chǔ)。運(yùn)行在 Zynq UltraScale+ MPSoC 上的 Xen 管理程序?yàn)橄到y(tǒng)設(shè)計(jì)人員提供完整的解決方案,能充分釋放嵌入式系統(tǒng)設(shè)計(jì)的全部潛力。
WP474
虛擬化通過(guò)讓多個(gè)軟件協(xié)議棧同時(shí)運(yùn)行在同一處理器上,已經(jīng)征服了桌面系統(tǒng),現(xiàn)在將進(jìn)軍嵌入式系統(tǒng)。VMWare 和 VirtualBox 這樣的常用套件已經(jīng)讓虛擬化成為桌面用戶(hù)司空見(jiàn)慣的做法。這類(lèi)軟件被視為臺(tái)式電腦生產(chǎn)力增強(qiáng)器,不過(guò)賽靈思 Zynq UltraScale+ MPSoC 等嵌入式片上系統(tǒng) (SoC) 也可運(yùn)用同一原理充分發(fā)揮最大潛能。
虛擬化的作用隨系統(tǒng)發(fā)生變化。對(duì)某些設(shè)計(jì)人員來(lái)說(shuō),虛擬化能夠讓處理器始終保持滿(mǎn)負(fù)載狀態(tài),從而節(jié)省電力,最大化性能。對(duì)其他系統(tǒng),虛擬化可對(duì)各個(gè)軟件協(xié)議棧進(jìn)行分區(qū),實(shí)現(xiàn)隔離或冗余。
傳統(tǒng)上,虛擬化難以用于嵌入式領(lǐng)域,是因?yàn)槿狈瓤珊?jiǎn)化解決方案實(shí)現(xiàn)工作,又能提供滿(mǎn)意性能的合適硬件資源。因此,需要在同一處理器上運(yùn)行異構(gòu)軟件協(xié)議棧的系統(tǒng)不得不依賴(lài)于人工管理各種軟件協(xié)議棧,或不得不接受未加速虛擬化所帶來(lái)的更大時(shí)延和性能特性下降等缺陷。
位于每個(gè) Zynq UltraScale+ MPSoC 核心的 ARM® v8 架構(gòu)能確保真正的硬件加速虛擬化,克服這些實(shí)現(xiàn)障礙。此外,Xen 管理程序提供的易用性為在嵌入式系統(tǒng)中實(shí)現(xiàn)桌面級(jí)性能和生產(chǎn)力奠定了基礎(chǔ)。運(yùn)行在 Zynq UltraScale+ MPSoC 上的 Xen 管理程序?yàn)橄到y(tǒng)設(shè)計(jì)人員提供完整的解決方案,能充分釋放嵌入式系統(tǒng)設(shè)計(jì)的全部潛力。
為什么要虛擬化嵌入式系統(tǒng)?
是否需要虛擬化一般由下列三大系統(tǒng)設(shè)計(jì)特征之一決定的 :
處理器必須能根據(jù)性能規(guī)范要求盡量保持滿(mǎn)載。
應(yīng)安全、可擴(kuò)展性和 / 或可靠性的要求需要進(jìn)行軟件隔離或分區(qū)。
為滿(mǎn)足可靠性要求,需要進(jìn)行縮放或提供冗余。
硬件加速的虛擬化位于 Zynq UltraScale+ MPSoC 的 ARMv8 架構(gòu)的核心位置。這種協(xié)同架構(gòu)不僅能滿(mǎn)足上述每一項(xiàng)要求,實(shí)際上它還能簡(jiǎn)化實(shí)現(xiàn)工作。之所以能這樣,是因?yàn)樗鼮槊總(gè)客戶(hù)軟件協(xié)議棧提供一個(gè)隔離的沙盒。沒(méi)有這樣的硬件加速,這些系統(tǒng)會(huì)變得復(fù)雜得多,給實(shí)現(xiàn)和管理帶來(lái)切實(shí)的問(wèn)題。
經(jīng)優(yōu)化的系統(tǒng)加載
對(duì)系統(tǒng)加載進(jìn)行精心管理是嵌入式系統(tǒng)的共通難題,在沒(méi)有管理程序輔助時(shí)還會(huì)造成一系列嚴(yán)峻的運(yùn)行問(wèn)題。Linux 等傳統(tǒng)操作系統(tǒng)非常擅長(zhǎng)于處理對(duì)稱(chēng)多處理 (SMP) 任務(wù),此時(shí)所有處理器核都處在它的控制之下。但是如果不是每一個(gè)處理器都有任務(wù)會(huì)怎么樣? Linux 會(huì)讓沒(méi)有使用的處理器處于待機(jī)狀態(tài)。
Linux 的多個(gè)實(shí)例可按原樣虛擬化(即對(duì) Linux 不做修改),每個(gè)實(shí)例都運(yùn)行自己的一組任務(wù)。可以根據(jù)需要將 Linux 的新實(shí)例投入使用。相反如果需求較低,這些 Linux 實(shí)例可以關(guān)閉。因此處理器可以根據(jù)需要激活或待機(jī),但系統(tǒng)總體上能保持近乎持續(xù)的繁忙。另外,管理多個(gè)不同的軟件協(xié)議棧也可采用類(lèi)似的方法。這樣無(wú)需要求所有的虛擬操作系統(tǒng)相同,從而提高最終系統(tǒng)的靈活性和模塊化水平。
經(jīng)優(yōu)化的軟件隔離與分區(qū)
軟件隔離和分區(qū)是另一個(gè)能給非托管環(huán)境帶來(lái)嚴(yán)峻挑戰(zhàn)的常見(jiàn)用例。這個(gè)問(wèn)題與系統(tǒng)加載問(wèn)題類(lèi)似,但是包含一項(xiàng)額外的要求,即每個(gè)軟件協(xié)議棧不能與任何同時(shí)運(yùn)行的軟件協(xié)議棧發(fā)生干擾。這種情況的最簡(jiǎn)單的例子是兩個(gè)并行運(yùn)行的實(shí)時(shí)操作系統(tǒng)。滿(mǎn)足這些需求的傳統(tǒng)方法會(huì)增大軟件的復(fù)雜性,以確保每個(gè) RTOS 只與分配給自己的有限資源交互。相比之下,虛擬化系統(tǒng)采用的沙盒模式能讓每個(gè) RTOS 完全控制其沙盒中可用的資源。它把這個(gè)沙盒視為完整系統(tǒng),在使用時(shí)無(wú)需了解是否有其他軟件可能在系統(tǒng)上運(yùn)行。這種沙盒模式能極大地減少綁定到特定硬件平臺(tái)的資源,提高代碼的可移植性。此外,該 RTOS 無(wú)需感知系統(tǒng)中的任何其他軟件,讓它能大幅得到簡(jiǎn)化。這種脫離依賴(lài)性的方法,對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)巨大的福音,因?yàn)樗麄冎恍杈帉?xiě)一次代碼,就能將它部署到眾多的不同系統(tǒng)上。
經(jīng)優(yōu)化的縮放與冗余
對(duì)于嵌入式系統(tǒng),縮放與冗余需求會(huì)隨著 SoC 的性能和功能的增強(qiáng)而提升。
縮放要求加載在處理器上的軟件量隨系統(tǒng)需求增長(zhǎng)而增加。例如高性能計(jì)算環(huán)境要求將更多 Linux 操作系統(tǒng)實(shí)例投入使用,滿(mǎn)足用戶(hù)提出的更多請(qǐng)求。通過(guò)運(yùn)用虛擬化,能夠根據(jù)需要將 Linux 的相同復(fù)本投入使用。隨后,隨著系統(tǒng)上的需求減少,這些 Linux 的實(shí)例可被關(guān)閉。
冗余要求特定服務(wù)保持可用,甚至是在系統(tǒng)處于非常時(shí)期的時(shí)候也一樣。例如 RTOS 能提供對(duì)特定系統(tǒng)功能的關(guān)鍵監(jiān)測(cè)。如果該 RTOS 因某種原因失效呢?使用虛擬化,系統(tǒng)監(jiān)控器能檢測(cè)到故障,還能重新啟動(dòng)該 RTOS,或者啟動(dòng)該 RTOS 的一個(gè)新實(shí)例,從而最大限度地降低或消除這些關(guān)鍵系統(tǒng)服務(wù)的停機(jī)時(shí)間。
為什么選擇 Xen?
在選擇管理程序解決方案的時(shí)候,重要的是讓它穩(wěn)健和可靠。此外,它必須通過(guò)積極主動(dòng)的開(kāi)發(fā)來(lái)跟上它周?chē)澜绨l(fā)生的變化的步伐。Xen 管理程序就是這樣的一種解決方案。
Xen 最初是上個(gè)世紀(jì) 90 年代晚期在劍橋大學(xué)作為更大的 Xenoserver 項(xiàng)目的子項(xiàng)目開(kāi)始的。它于 2000 年代早期發(fā)布給開(kāi)源社區(qū),并在 2013 年得到 Linux 基金會(huì)的支持。在 Linux 基金會(huì)的鼎力支持下,Xen 已經(jīng)成為基于 Linux 的操作系統(tǒng)的事實(shí)管理程序解決方案。
雖然 Xen 的傳統(tǒng)架構(gòu)一直是兼容 x86,近期的主機(jī)開(kāi)發(fā)使之也成為 ARM 架構(gòu)上的穩(wěn)健解決方案。Xen 能充分發(fā)揮包括系統(tǒng)存儲(chǔ)器管理單元 (SMMU) 在內(nèi)的 ARMv8 底層虛擬硬件的作用。
Xen 免費(fèi)提供,并配套標(biāo)準(zhǔn)的 GPLv2 許可證,有活躍的用戶(hù)社區(qū)開(kāi)發(fā)新特性,以及豐富的技術(shù)支持資源。對(duì)需要商業(yè)化維護(hù)和支持的集成商而言,有 DornerWorks 這樣的廠商為 Xen 提供專(zhuān)業(yè)支持和結(jié)構(gòu)。
在選擇管理程序解決方案時(shí),軟件支持也是一個(gè)關(guān)鍵的差異化因素。Xen 本身是一種 I 類(lèi)管理程序,即它能直接在底層硬件上運(yùn)行,而不像 II 類(lèi)管理程序 VMWare 或 VirtualBox 運(yùn)行在主機(jī)操作系統(tǒng)上。
Xen 管理程序把客戶(hù)操作系統(tǒng)劃分為域。它使用特殊的管理接口 Dom0 控制管理程序的運(yùn)行時(shí)操作。該域?yàn)?Xen 管理程序提供專(zhuān)用軟件基礎(chǔ)架構(gòu)。這種運(yùn)行結(jié)構(gòu)對(duì) Xen 的正常工作是必須的。Dom0 使用其內(nèi)核內(nèi)的專(zhuān)用軟件以及能夠直接訪問(wèn)底層硬件的專(zhuān)用管理驅(qū)動(dòng)程序。最常見(jiàn)的 Dom0 操作系統(tǒng)之一是 Linux,它能夠有力地支持 Zynq UltraScale+ MPSoC。
所有存在于非專(zhuān)用域內(nèi)的標(biāo)準(zhǔn)客戶(hù)操作程序都被集中稱(chēng)之 DomU。包括 Linux 這樣的高級(jí)操作系統(tǒng)、FreeRTOS 這樣的實(shí)時(shí)操作系統(tǒng)乃至裸機(jī)代碼等各種客戶(hù)軟件都在底層受 Xen 支持用于 DomU。任何主機(jī)與客戶(hù)的組合都完全受系統(tǒng)設(shè)計(jì)人員的需求驅(qū)動(dòng)。相比之下,大部分商業(yè)管理程序解決方案只支持有限數(shù)量的客戶(hù)而且是在極為具體的配置中,一般是管理程序提供方自己開(kāi)發(fā)的配置中。
將 Xen 管理程序與 Zynq UltraScale+ MPSoC 集成簡(jiǎn)便易行
即便管理程序解決方案使用最出色的技術(shù)組件,如果不能簡(jiǎn)單直觀地實(shí)施在用戶(hù)系統(tǒng)中,也基本上沒(méi)有什么用處。通過(guò)極為貼近 Linux 內(nèi)核,Xen 在這方面能提供很多便利。實(shí)現(xiàn) Xen 管理程序功能與在 Linux 內(nèi)核中實(shí)現(xiàn)任何其他特性沒(méi)有區(qū)別。此外。管理 DomU 沙盒既可以手動(dòng)處理,也可以通過(guò)稱(chēng)為 Xen 工具的工具套件處理。
對(duì)于將 Linux 用作 Dom0 的設(shè)計(jì)人員,通過(guò)命令行就能簡(jiǎn)單易行地安裝 Xen 工具。Xen 工具可使用源代碼構(gòu)建和安裝,也可借助 RPM 或 APT 等通用封裝管理器構(gòu)建和安裝。
安裝完成后,Xen 工具能從 Linux 用戶(hù)空間用名為 xl 的工具創(chuàng)建、管理和損壞 DomU 環(huán)境。
創(chuàng)建新的虛擬機(jī)與創(chuàng)建描述虛擬化環(huán)境的明文 ASCII 配 置文件一樣簡(jiǎn)單。該文件設(shè)定如下的詳細(xì)內(nèi)容 :
為虛擬機(jī)分配的存儲(chǔ)器數(shù)量
虛擬化的 CPU 的數(shù)量
聯(lián)網(wǎng)詳情
磁盤(pán)鏡像文件
配置文件還可以借助文本解析工具和版本控制軟件輕松地加以管理。請(qǐng)參閱如下的實(shí)例代碼 :
# This configures an HVM rather than PV guest
builder = "hvm"
# Guest name
name = "My Virtual Machine"
# Initial memory allocation (MB)
memory = 128
# Number of VCPUs
vcpus = 2
# Disk Devices
# A list of 'diskspec' entries as described in
# docs/misc/xl-disk-configuration.txt
disk = ['/dev/vg/guest-volume, raw, xvda, rw']
用于管理虛擬機(jī)的命令被稱(chēng)為 xl。該命令可讓設(shè)計(jì)人員管理 Xen 虛擬機(jī)從啟動(dòng)到關(guān)斷的整個(gè)生命周期。要根據(jù)已有的配置文件創(chuàng)建新的虛擬機(jī)實(shí)例,設(shè)計(jì)人員可以使用一個(gè)簡(jiǎn)單的單行命令創(chuàng)建 Xen 管理程序 :
xl create
在虛擬機(jī)的生命周期中,其他 xl 選項(xiàng)如 list、reboot 和 shutdown 都可以用于管理任務(wù)。
結(jié) 論
WP474
多類(lèi)系統(tǒng)都能從虛擬化獲益。許多采用其他方法會(huì)變得復(fù)雜化和高勞動(dòng)強(qiáng)度的系統(tǒng)需求,也能夠使用 Xen 實(shí)現(xiàn)在多處理器平臺(tái)上,如擁有 ARMv8 處理器的賽靈思 Zynq UltraScale+ MPSoC。使用虛擬化能夠?qū)崿F(xiàn)下面這些想實(shí)現(xiàn)而且往往相當(dāng)關(guān)鍵的特性 :
分區(qū)
隔離
可靠性
冗余
虛擬化不僅能夠?qū)崿F(xiàn)這些系統(tǒng),還能讓實(shí)現(xiàn)工作相當(dāng)簡(jiǎn)單。系統(tǒng)設(shè)計(jì)人員應(yīng)該在評(píng)估自己的設(shè)計(jì)時(shí),考慮使用虛擬化解決方案來(lái)確保最優(yōu)異、最具成本效益的結(jié)果。采用 ARMv8 多處理器的賽靈思 Zynq UltraScale+ MPSoC 對(duì) Xen 管理程序和 Xen 工具集而言是理想的設(shè)計(jì)平臺(tái)。
對(duì)軟件開(kāi)發(fā)人員而言,虛擬化能讓軟件協(xié)議棧的開(kāi)發(fā)可移植、可靠,采用最少的膠合邏輯就能讓它們按要求運(yùn)行。此外,在 Linux 基金的鼎力支持下,Xen 相當(dāng)穩(wěn)健,能跨越多種類(lèi)型的操作系統(tǒng)和軟件協(xié)議棧提供穩(wěn)健的集成和支持。最后,基于 Xen 的虛擬機(jī)的管理使用易于使用的命令行界面和適合版本控制的明文 ASCII 文本配置,相當(dāng)簡(jiǎn)單。
【嵌入式系統(tǒng)的虛擬化怎么實(shí)現(xiàn)】相關(guān)文章:
關(guān)于辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)07-28
OA辦公系統(tǒng)的安全性怎么實(shí)現(xiàn)12-26
嵌入式系統(tǒng)組成10-20
嵌入式系統(tǒng)介紹01-13
嵌入式系統(tǒng)歷史發(fā)展01-13
嵌入式系統(tǒng)現(xiàn)狀發(fā)展08-16