首頁(yè) > 新聞 > 國(guó)內(nèi) >

虛擬化技術(shù)在智能終端的應(yīng)用

2014-12-08 14:07:22   作者:   來(lái)源:比特網(wǎng)通信   評(píng)論:0  點(diǎn)擊:


  服務(wù)器和桌面機(jī)虛擬化一直占據(jù)有相當(dāng)大的版面,隨著云計(jì)算和存儲(chǔ)的興起,虛擬化技術(shù)更 被熱捧,還有一種虛擬化技術(shù)發(fā)展迅猛--嵌入式虛擬化。嵌入式虛擬化是指嵌入式系統(tǒng)中部署虛擬機(jī)監(jiān)控程序。盡管嵌入式設(shè)備一直受到嚴(yán)格的資源限制,但今天 的設(shè)備范圍廣泛--從擁有服務(wù)器級(jí)功能(比如對(duì)虛擬化的硬件支持)的強(qiáng)大處理器到擁有計(jì)較少容量和資源的功耗優(yōu)化系統(tǒng)。如果向嵌入式系統(tǒng)添加一個(gè)虛擬機(jī)監(jiān) 控程序,將添加靈活性和一些高級(jí)功能,將嵌入式設(shè)備轉(zhuǎn)變?yōu)橐环N新型系統(tǒng)。

  嵌入式領(lǐng)域包含幾個(gè)有用的虛擬化應(yīng)用領(lǐng)域:移動(dòng)設(shè)備、安全性內(nèi)核和并發(fā)性嵌入式操作系統(tǒng)。本文介紹了智能終端中虛擬化技術(shù)的應(yīng)用。

  (一)虛擬化技術(shù)概述

  虛擬化是指計(jì)算機(jī)軟件在一個(gè)虛擬的平臺(tái)上而不是真實(shí)的硬件平臺(tái)上運(yùn)行。虛擬化技術(shù)可以 擴(kuò)大硬件的容量,簡(jiǎn)化軟件的重新配置過(guò)程。其中CPU的虛擬化可以單CPU模擬多CPU并行運(yùn)行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且應(yīng)用程序可以在 相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響。虛擬化技術(shù)在降低硬件成本的同時(shí),還可以顯著提高系統(tǒng)的工作效率和安全性。

  虛擬化系統(tǒng)的實(shí)現(xiàn)通常是在操作系統(tǒng)和硬件之間加入一個(gè)虛擬機(jī)監(jiān)控程序,稱為 Hypervisor。由Hypervisor主要負(fù)責(zé)各個(gè)操作系統(tǒng)之間的硬件資源協(xié)調(diào)。虛擬機(jī)監(jiān)控程序是一種特殊操作系統(tǒng),直接在裸機(jī)上 運(yùn)行(針對(duì)完全虛擬化技術(shù))。虛擬機(jī)監(jiān)控程序創(chuàng)建一個(gè)底層硬件平臺(tái)抽象,一個(gè)或多個(gè)虛擬機(jī)(VM)共享這個(gè)底層硬件平臺(tái)。在這種環(huán)境中,VM 只是操作系統(tǒng)及其應(yīng)用程序的容器,一個(gè) VM 與虛擬機(jī)監(jiān)控程序上運(yùn)行的其他 VMs 隔離,這支持多個(gè)操作系統(tǒng)或多個(gè)配置不同的相似操作系統(tǒng)。

  智能終端虛擬化技術(shù)也是通過(guò)Hypervisor來(lái)實(shí)現(xiàn)多個(gè)操作系統(tǒng)的硬件資源共享,F(xiàn)有的虛擬化技術(shù)方案主要有VirtualLogix的VLX、Open Kernel Labs的OKL4等,這些技術(shù)方案雖然實(shí)現(xiàn)了不同的Hypervisor,但總體結(jié)構(gòu)相似。

  (二)智能終端領(lǐng)域的虛擬化

  虛擬化技術(shù)使得軟件和硬件通過(guò)虛擬化技術(shù)實(shí)現(xiàn)了較松的耦合,系統(tǒng)軟件只需要實(shí)現(xiàn)很少的 改動(dòng)就能移植到新的硬件平臺(tái)上。智能終端可以在虛擬平臺(tái)上運(yùn)行多個(gè)相互隔離的操作系統(tǒng),提高手機(jī)系統(tǒng)的安全性。如將重要數(shù)據(jù)和安全需求高的應(yīng)用專門隔離保 護(hù)起來(lái),即使某操作系統(tǒng)上的應(yīng)用軟件甚至整個(gè)智能操作系統(tǒng)因中毒等崩潰,虛擬化技術(shù)可以將重要數(shù)據(jù)隔離保護(hù)起來(lái)。另外虛擬化技術(shù)還可能減少硬件成本,如果 一顆CPU計(jì)算能力足夠,可以在一顆CPU上模擬多顆邏輯CPU的執(zhí)行,將智能操作系統(tǒng)和基帶的RTOS運(yùn)行在同一個(gè)CPU上,減少主芯片數(shù)量,節(jié)約大量 成本。多核平臺(tái)中也可以通過(guò)將CPUs虛擬成虛擬CPU池,所有軟件部分都通過(guò)虛擬化技術(shù)共享這些硬件資源。

  如果虛擬化技術(shù)在嵌入式領(lǐng)域高度發(fā)展,應(yīng)該可以實(shí)現(xiàn)軟硬件的極松耦合--所有軟件(操作系統(tǒng),WIFi、藍(lán)牙等微控制程序)共享硬件平臺(tái)、運(yùn)行在虛擬硬件層,邏輯硬件間形成統(tǒng)一的邏輯接口,硬件平臺(tái)支持方便的替換、升級(jí)。那時(shí),智能終端將可任意定制。

  (三)ARM架構(gòu)上基于OKL4的Android虛擬化

  OKL4是Open Kernel Labs公司的一款虛擬化產(chǎn)品,作為針對(duì)嵌入式系統(tǒng)的Hypervisor,OKL4支持經(jīng)過(guò)虛擬化處理的操作系統(tǒng)(包括智能操作系統(tǒng)和RTOS),一些 操作系統(tǒng)的內(nèi)核組件也進(jìn)行虛擬化處理,獨(dú)立運(yùn)行在OKL4的輕量級(jí)執(zhí)行環(huán)境下。OKL4既支持粗粒度的操作系統(tǒng)虛擬機(jī),又支持細(xì)粒度的輕量級(jí)執(zhí)行環(huán)境。驅(qū) 動(dòng)程序或文件系統(tǒng)等內(nèi)核組件可直接運(yùn)行在輕量級(jí)執(zhí)行環(huán)境中,其它子系統(tǒng)可以共享該組件,提高了系統(tǒng)的安全性,也提高代碼的復(fù)用率。

  虛擬機(jī)VMM(虛擬機(jī)監(jiān)控器)運(yùn)行在物理CPU的最高特權(quán)級(jí),對(duì)物理資源虛擬的三個(gè)主要任務(wù):處理器虛擬化、內(nèi)存虛擬化和I/O虛擬化。本節(jié)通過(guò)CPU虛擬化、內(nèi)存虛擬化介紹ARM架構(gòu)上基于OKL4的虛擬化Android。

  1,CPU虛擬化的設(shè)計(jì)

  OKL4 Hypervisor運(yùn)行在特權(quán)級(jí)(6 種特權(quán)模式)上,負(fù)責(zé)管理CPU資源,負(fù)責(zé)虛擬機(jī)的調(diào)度和切換,而輕量級(jí)執(zhí)行環(huán)境和虛擬機(jī)均位于用戶模式下,使用OKL4提供的IPC機(jī)制進(jìn)行通信。

  在基于OKL4的虛擬化Android系統(tǒng)中,當(dāng)Android試圖訪問(wèn)CPU寄存器 時(shí),該請(qǐng)求不會(huì)真正發(fā)生在物理寄存器上,相反,OKL4會(huì)將訪問(wèn)定位到“虛擬寄存器”。根據(jù)不同的處理器體系結(jié)構(gòu),OKL4定義了一套存放在內(nèi)存中的“虛 擬寄存器”,這些虛擬寄存器作為線程的本地變量位于線程的用戶線程控制塊中。通過(guò)“虛擬寄存器”,Android不會(huì)訪問(wèn)到真實(shí)的物理資源,從而實(shí)現(xiàn)了操 作系統(tǒng)與CPU資源的隔離。

  2,虛擬內(nèi)存管理

  在OKL4虛擬化系統(tǒng)中,Android操作系統(tǒng)使用的內(nèi)存地址空間其實(shí)是OKL4建 立的虛擬地址空間,是由一些物理內(nèi)存映射而生成的虛擬內(nèi)存。在OKL4 Hypervisor啟動(dòng)時(shí),一個(gè)稱為__okl4_environ的全局變量會(huì)被初始化,__okl4_environ的成員 okl4_virtmem_item為一個(gè)結(jié)構(gòu)體數(shù)組,它代表了各個(gè)虛擬化子系統(tǒng)(包括操作系統(tǒng)和虛擬化組件)的虛擬內(nèi)存地址空間。子系統(tǒng)可以通過(guò) OKL4提供的接口OKL4_ENV_GET_ STATIC()訪問(wèn)該結(jié)構(gòu)體數(shù)組,獲取虛擬內(nèi)存地址。

分享到: 收藏

專題