服務(wù)器和桌面機虛擬化一直占據(jù)有相當大的版面,隨著云計算和存儲的興起,虛擬化技術(shù)更被熱捧,還有一種虛擬化技術(shù)發(fā)展迅猛--嵌入式虛擬化。嵌入式虛擬化是指嵌入式系統(tǒng)中部署虛擬機監(jiān)控程序。盡管嵌入式設(shè)備一直受到嚴格的資源限制,但今天的設(shè)備范圍廣泛--從擁有服務(wù)器級功能(比如對虛擬化的硬件支持)的強大處理器到擁有計較少容量和資源的功耗優(yōu)化系統(tǒng)。如果向嵌入式系統(tǒng)添加一個虛擬機監(jiān)控程序,將添加靈活性和一些高級功能,將嵌入式設(shè)備轉(zhuǎn)變?yōu)橐环N新型系統(tǒng)。
嵌入式領(lǐng)域包含幾個有用的虛擬化應(yīng)用領(lǐng)域:移動設(shè)備、安全性內(nèi)核和并發(fā)性嵌入式操作系統(tǒng)。本文介紹了智能終端中虛擬化技術(shù)的應(yīng)用。
(一)虛擬化技術(shù)概述
虛擬化是指計算機軟件在一個虛擬的平臺上而不是真實的硬件平臺上運行。虛擬化技術(shù)可以擴大硬件的容量,簡化軟件的重新配置過程。其中CPU的虛擬化可以單CPU模擬多CPU并行運行,允許一個平臺同時運行多個操作系統(tǒng),并且應(yīng)用程序可以在相互獨立的空間內(nèi)運行而互不影響。虛擬化技術(shù)在降低硬件成本的同時,還可以顯著提高系統(tǒng)的工作效率和安全性。
虛擬化系統(tǒng)的實現(xiàn)通常是在操作系統(tǒng)和硬件之間加入一個虛擬機監(jiān)控程序,稱為Hypervisor(如圖1所示)。由Hypervisor主要負責(zé)各個操作系統(tǒng)之間的硬件資源協(xié)調(diào)。虛擬機監(jiān)控程序是一種特殊操作系統(tǒng),直接在裸機上運行(針對完全虛擬化技術(shù))。虛擬機監(jiān)控程序創(chuàng)建一個底層硬件平臺抽象,一個或多個虛擬機(VM)共享這個底層硬件平臺。在這種環(huán)境中,VM 只是操作系統(tǒng)及其應(yīng)用程序的容器,一個 VM 與虛擬機監(jiān)控程序上運行的其他 VMs 隔離,這支持多個操作系統(tǒng)或多個配置不同的相似操作系統(tǒng)。
圖1 虛擬化系統(tǒng)結(jié)構(gòu)
智能終端虛擬化技術(shù)也是通過Hypervisor來實現(xiàn)多個操作系統(tǒng)的硬件資源共享。現(xiàn)有的虛擬化技術(shù)方案主要有VirtualLogix的VLX、Open Kernel Labs的OKL4等,這些技術(shù)方案雖然實現(xiàn)了不同的Hypervisor,但總體結(jié)構(gòu)相似。
(二)智能終端領(lǐng)域的虛擬化
虛擬化技術(shù)使得軟件和硬件通過虛擬化技術(shù)實現(xiàn)了較松的耦合,系統(tǒng)軟件只需要實現(xiàn)很少的改動就能移植到新的硬件平臺上。智能終端可以在虛擬平臺上運行多個相互隔離的操作系統(tǒng),提高手機系統(tǒng)的安全性。如將重要數(shù)據(jù)和安全需求高的應(yīng)用專門隔離保護起來,即使某操作系統(tǒng)上的應(yīng)用軟件甚至整個智能操作系統(tǒng)因中毒等崩潰,虛擬化技術(shù)可以將重要數(shù)據(jù)隔離保護起來。另外虛擬化技術(shù)還可能減少硬件成本,如果一顆CPU計算能力足夠,可以在一顆CPU上模擬多顆邏輯CPU的執(zhí)行,將智能操作系統(tǒng)和基帶的RTOS運行在同一個CPU上,減少主芯片數(shù)量,節(jié)約大量成本。多核平臺中也可以通過將CPUs虛擬成虛擬CPU池,所有軟件部分都通過虛擬化技術(shù)共享這些硬件資源。
如果虛擬化技術(shù)在嵌入式領(lǐng)域高度發(fā)展,應(yīng)該可以實現(xiàn)軟硬件的極松耦合--所有軟件(操作系統(tǒng),WIFi、藍牙等微控制程序)共享硬件平臺、運行在虛擬硬件層,邏輯硬件間形成統(tǒng)一的邏輯接口,硬件平臺支持方便的替換、升級。那時,智能終端將可任意定制。
(三)ARM架構(gòu)上基于OKL4的Android虛擬化
OKL4是Open Kernel Labs公司的一款虛擬化產(chǎn)品,作為針對嵌入式系統(tǒng)的Hypervisor,OKL4支持經(jīng)過虛擬化處理的操作系統(tǒng)(包括智能操作系統(tǒng)和RTOS),一些操作系統(tǒng)的內(nèi)核組件也進行虛擬化處理,獨立運行在OKL4的輕量級執(zhí)行環(huán)境下。OKL4既支持粗粒度的操作系統(tǒng)虛擬機,又支持細粒度的輕量級執(zhí)行環(huán)境。驅(qū)動程序或文件系統(tǒng)等內(nèi)核組件可直接運行在輕量級執(zhí)行環(huán)境中,其它子系統(tǒng)可以共享該組件,提高了系統(tǒng)的安全性,也提高代碼的復(fù)用率。基于OKL4的手機虛擬化結(jié)構(gòu)如圖2所示。
圖2 OKL4虛擬化系統(tǒng)結(jié)構(gòu)
虛擬機VMM(虛擬機監(jiān)控器)運行在物理CPU的最高特權(quán)級,對物理資源虛擬的三個主要任務(wù):處理器虛擬化、內(nèi)存虛擬化和I/O虛擬化。本節(jié)通過CPU虛擬化、內(nèi)存虛擬化介紹ARM架構(gòu)上基于OKL4的虛擬化Android。
1.CPU虛擬化的設(shè)計
OKL4 Hypervisor運行在特權(quán)級(6 種特權(quán)模式)上,負責(zé)管理CPU資源,負責(zé)虛擬機的調(diào)度和切換,而輕量級執(zhí)行環(huán)境和虛擬機均位于用戶模式下,使用OKL4提供的IPC機制進行通信。
在基于OKL4的虛擬化Android系統(tǒng)中,當Android試圖訪問CPU寄存器時,該請求不會真正發(fā)生在物理寄存器上,相反,OKL4會將訪問定位到“虛擬寄存器”。根據(jù)不同的處理器體系結(jié)構(gòu),OKL4定義了一套存放在內(nèi)存中的“虛擬寄存器”,這些虛擬寄存器作為線程的本地變量位于線程的用戶線程控制塊中。通過“虛擬寄存器”,Android不會訪問到真實的物理資源,從而實現(xiàn)了操作系統(tǒng)與CPU資源的隔離。
2.虛擬內(nèi)存管理
在OKL4虛擬化系統(tǒng)中,Android操作系統(tǒng)使用的內(nèi)存地址空間其實是OKL4建立的虛擬地址空間,是由一些物理內(nèi)存映射而生成的虛擬內(nèi)存。在OKL4 Hypervisor啟動時,一個稱為__okl4_environ的全局變量會被初始化,__okl4_environ的成員okl4_virtmem_item為一個結(jié)構(gòu)體數(shù)組,它代表了各個虛擬化子系統(tǒng)(包括操作系統(tǒng)和虛擬化組件)的虛擬內(nèi)存地址空間。子系統(tǒng)可以通過OKL4提供的接口OKL4_ENV_GET_ STATIC()訪問該結(jié)構(gòu)體數(shù)組,獲取虛擬內(nèi)存地址。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/