專利名稱:一種嵌入式操作系統(tǒng)虛擬機(jī)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式操作系統(tǒng)虛擬機(jī)及其核心技術(shù)的實(shí)現(xiàn)方法,支持在單個(gè)硬件微處理器上建立兩個(gè)不同的嵌入式操作系統(tǒng)及其通信機(jī)制,應(yīng)用在邏輯上隔離的兩個(gè)不同特性的軟件系統(tǒng),屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
背景技術(shù):
目前在PC產(chǎn)品上已經(jīng)有多種虛擬機(jī)產(chǎn)品,在這些產(chǎn)品之上軟件的運(yùn)行類似于在一臺(tái)物理計(jì)算機(jī)上運(yùn)行,包含自己的虛擬CPU(即基于軟件實(shí)現(xiàn)的CPU)、虛擬RAM硬盤和虛擬網(wǎng)絡(luò)接口卡(NIC)等。這些虛擬機(jī)產(chǎn)品用不同的技術(shù)手段實(shí)現(xiàn),其滿足的需求也不完全相同。本發(fā)明主要針對(duì)支持蜂窩網(wǎng)通信的各種各樣的移動(dòng)終端設(shè)備。在此類設(shè)備的設(shè)計(jì)中,通常包括兩種主要類型的微處理器芯片,一個(gè)是以應(yīng)用微處理器(AP)為中心的硬件系統(tǒng),運(yùn)行用戶操作系統(tǒng)和相應(yīng)的應(yīng)用,另一個(gè)是以通信微處理器(CP)為中心的硬件系統(tǒng),運(yùn)行相應(yīng)的通信協(xié)議棧(基帶系統(tǒng))。由此,此類移動(dòng)終端設(shè)備的設(shè)計(jì)也通常包括兩種類型,一種是采用應(yīng)用微處理器和通信微處理器分離的硬件設(shè)計(jì),應(yīng)用系統(tǒng)與通信系統(tǒng)之間的通信通過(guò)兩個(gè)微處理器之間的特殊硬件通道進(jìn)行。另一種是把應(yīng)用微處理器和通信微處理器合二為一,即在一個(gè)微處理器上實(shí)現(xiàn)應(yīng)用系統(tǒng)與通信系統(tǒng),此時(shí)應(yīng)用系統(tǒng)與通信系統(tǒng)從邏輯上是不獨(dú)立的。應(yīng)用系統(tǒng)與通信系統(tǒng)是兩個(gè)具有不同特點(diǎn)的系統(tǒng),應(yīng)用系統(tǒng)完成應(yīng)用性功能及相應(yīng)的用戶交互,著重用戶體驗(yàn);通信系統(tǒng)完成相應(yīng)的通信協(xié)議功能,要求硬實(shí)時(shí)特性。所以, 微處理器分離的方案可以較好地滿足應(yīng)用系統(tǒng)與通信系統(tǒng)本身的要求,但會(huì)帶來(lái)功耗、硬件復(fù)雜度及性價(jià)比較差等方面的缺點(diǎn),微處理器和通信微處理器合二為一的方案則會(huì)帶來(lái)應(yīng)用軟件設(shè)計(jì)相對(duì)復(fù)雜,可擴(kuò)展性差等方面的缺點(diǎn)。針對(duì)兩類系統(tǒng)設(shè)計(jì)的缺點(diǎn),本發(fā)明通過(guò)在單一微處理器設(shè)計(jì)虛擬機(jī)(以下簡(jiǎn)稱 HopenVM)的方法,在虛擬機(jī)在支持應(yīng)用系統(tǒng)與通信系統(tǒng)所需要的各自的操作系統(tǒng),最后分別運(yùn)行應(yīng)用系統(tǒng)與通信系統(tǒng),使得整個(gè)架構(gòu)同時(shí)滿足兩個(gè)系統(tǒng)的要求,又克服了各自的缺
點(diǎn)ο
發(fā)明內(nèi)容
操作系統(tǒng)虛擬機(jī)是一種軟件產(chǎn)品,在特定的軟件平臺(tái)上,通過(guò)軟件手段把具有完整硬件系統(tǒng)功能的物理硬件機(jī)器,轉(zhuǎn)化成多個(gè)邏輯上隔離的完整計(jì)算機(jī)系統(tǒng)。虛擬機(jī)提供了一種隔離的軟件容器,在它之上可以運(yùn)行自己的操作系統(tǒng)和應(yīng)用程序,就好像一臺(tái)物理計(jì)算機(jī)一樣。本發(fā)明的虛擬機(jī)產(chǎn)品應(yīng)用于支持嵌入式操作系統(tǒng),為了滿足如下的需求
(1)滿足不同實(shí)時(shí)性需求的系統(tǒng)。如應(yīng)用系統(tǒng)和專用系統(tǒng)可以有強(qiáng)實(shí)時(shí)和軟實(shí)時(shí)之分, 可以根據(jù)需要使用不同的調(diào)度算法。
(2)邏輯上兩個(gè)系統(tǒng)相互獨(dú)立,以提高整個(gè)系統(tǒng)的可靠性,提高整個(gè)系統(tǒng)的抗崩潰的能力,有利于建立更可靠的內(nèi)核安全機(jī)制。(3)便于系統(tǒng)的移植,不同的系統(tǒng)獨(dú)立開(kāi)發(fā)和調(diào)試。本發(fā)明需要支持硬實(shí)時(shí)的系統(tǒng),并且盡可能減少性能上的開(kāi)銷,所以需要滿足邏輯上分隔,硬實(shí)時(shí)系統(tǒng)絕對(duì)優(yōu)先(包括中斷響應(yīng)、任務(wù)的運(yùn)行),不引入任何不必要的功能和機(jī)制,不降低性能,不影響并發(fā)性能,不做指令的仿真,也不考慮驅(qū)動(dòng)程序的問(wèn)題。Hopen VM提供必要的虛擬設(shè)備,包括虛擬中斷器、虛擬定時(shí)器、虛擬終端和虛擬管道。1、虛擬化寄存器的方法
類似于硬件實(shí)現(xiàn)時(shí)寄存器地址的映射可以采用IO地址映射和MEMORY地址映射思想, 我們用內(nèi)存地址單元直接仿真寄存器單元,以實(shí)現(xiàn)虛擬化的寄存器集合。相應(yīng)地,提供對(duì)這些虛擬化的寄存器存取的函數(shù)讀函數(shù)和寫函數(shù)。2、虛擬化虛擬中斷控制器的方法
基于以上虛擬化寄存器的方法,提供一組虛擬的虛擬中斷控制器?;谔摂M中斷控制器,HopenVM為每個(gè)虛擬機(jī)提供若干個(gè)虛擬中斷和若干個(gè)偽中斷。在虛擬機(jī)操作系統(tǒng)中,只能操作虛擬中斷控制器。真實(shí)的硬件通過(guò)映射的方式和虛擬中斷建立對(duì)應(yīng)關(guān)系,真實(shí)中斷不能共享,只能被某一個(gè)虛擬機(jī)所運(yùn)行的操作系統(tǒng)使用,通過(guò)“虛擬中斷映射表”事先將系統(tǒng)真實(shí)中斷預(yù)分配,或者通過(guò)HopenVM中斷注冊(cè)的方法改變?cè)撝袛嘣谟成浔淼膶傩?。中斷控制器硬件完全由HopenVM控制,虛擬機(jī)中的操作系統(tǒng)不能直接操作中斷控制器硬件,只能操作虛擬中斷控制器。HopenVM為每一個(gè)虛擬機(jī)都提供一個(gè)有若干個(gè)虛擬中斷和若干個(gè)偽中斷的虛擬中斷控制器。有的虛擬中斷有對(duì)應(yīng)的硬件中斷,有的則沒(méi)有對(duì)應(yīng)的硬件中斷。操作系統(tǒng)可以通過(guò)調(diào)用虛擬中斷控制器操作程序允許和禁止指定的虛擬中斷。如果該虛擬中斷對(duì)應(yīng)了硬件中斷,則Hopen VM會(huì)根據(jù)要求操作對(duì)應(yīng)的硬件中斷控制器。大部分虛擬中斷會(huì)直接對(duì)應(yīng)某個(gè)真實(shí)中斷。直接對(duì)應(yīng)虛擬中斷的真實(shí)中斷使用標(biāo)準(zhǔn)的真實(shí)中斷處理程序。該處理程序如下運(yùn)行
(1)根據(jù)中斷的類型操作真實(shí)的中斷控制器。(2)向虛擬機(jī)發(fā)送對(duì)應(yīng)的虛擬中斷。由于真實(shí)中斷的優(yōu)先級(jí)并不按照中斷號(hào)排列,因此如果要使真實(shí)中斷的優(yōu)先級(jí)能同時(shí)反映在虛擬中斷上,那么真實(shí)中斷號(hào)就必須按照中斷的優(yōu)先級(jí)對(duì)應(yīng)的虛擬中斷號(hào)。這樣對(duì)應(yīng)的虛擬中斷號(hào)就可能與真實(shí)中斷號(hào)不是同一個(gè)號(hào)。3、構(gòu)造虛擬設(shè)備系統(tǒng)的方法
Hopen VM在硬件之上構(gòu)建中斷虛擬設(shè)備,建立起虛中斷和偽中斷為主的中斷虛擬系統(tǒng),再以虛擬機(jī)和中斷虛擬系統(tǒng)為基礎(chǔ),虛擬出定時(shí)器、控制臺(tái)、管道等若干虛擬設(shè)備, Hopen VM架構(gòu)下的虛擬設(shè)備具有豐富的擴(kuò)展功能。虛擬設(shè)備和硬件設(shè)備的寄存器組類似, 虛擬中斷及偽中斷的處理流程和真實(shí)中斷相一致,因此虛擬設(shè)備完全具備了真實(shí)硬件設(shè)備的操作方法和流程。 其中,虛擬管道是基于Hopen VM和偽中斷設(shè)計(jì)的一個(gè)虛擬設(shè)備,硬件上沒(méi)有對(duì)應(yīng)的真實(shí)設(shè)備,其主要功能是建立兩個(gè)操作系統(tǒng)之間的數(shù)據(jù)通信通道,使得兩個(gè)建立在HopenVM上的邏輯上相互隔離的客戶操作系統(tǒng)之間可以進(jìn)行數(shù)據(jù)通信,類似與在兩個(gè)獨(dú)立的微處理器之間用獨(dú)立的硬件通道,比如串行口或者并行口進(jìn)行通信。Hopen VM提供可配置個(gè)數(shù)的連接兩個(gè)虛擬機(jī)的雙向虛擬管道。每一個(gè)虛擬管道都可以分別指定各個(gè)方向的緩存的大小。所有虛擬管道共享一個(gè)虛擬管道中斷,偽中斷,使用中斷狀態(tài)位來(lái)快速判斷哪一個(gè)虛擬管道有中斷。本發(fā)明的目的是支持基帶系統(tǒng)和應(yīng)用系統(tǒng)分離的軟件架構(gòu),進(jìn)行底層軟件架構(gòu)的優(yōu)化,設(shè)計(jì)Hopen VM虛擬硬件系統(tǒng),提出虛擬微處理器的概念,其結(jié)果是從基帶系統(tǒng)和應(yīng)用系統(tǒng)看,硬件系統(tǒng)依然是基帶處理器和應(yīng)用處理器兩個(gè)微處理器,這樣的設(shè)計(jì)實(shí)現(xiàn)很大程度上節(jié)省了手機(jī)硬件設(shè)計(jì)成本,減小了系統(tǒng)功耗,使有限的硬件資源適合于復(fù)雜軟件架構(gòu)。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。圖1為本發(fā)明所述的虛擬管道結(jié)構(gòu)圖。圖2為本發(fā)明所述的虛擬機(jī)及客戶操作系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式操作系統(tǒng)虛擬機(jī)是一種軟件產(chǎn)品,在特定的軟件平臺(tái)上,通過(guò)軟件手段把具有完整硬件系統(tǒng)功能的物理硬件機(jī)器,轉(zhuǎn)化成多個(gè)邏輯上隔離的完整計(jì)算機(jī)系統(tǒng)。虛擬機(jī)提供了一種隔離的軟件容器,在它之上可以運(yùn)行自己的操作系統(tǒng)和應(yīng)用程序,就好像一臺(tái)物理計(jì)算機(jī)一樣。本發(fā)明的虛擬機(jī)軟件產(chǎn)品應(yīng)用于支持嵌入式操作系統(tǒng),兩個(gè)客戶操作系統(tǒng)有各自有其獨(dú)立的任務(wù)調(diào)度、內(nèi)存管理和中斷處理等。Hopen VM虛擬機(jī)負(fù)責(zé)對(duì)真實(shí)硬件進(jìn)行管理, 向兩個(gè)操作系統(tǒng)抽象出兩個(gè)不同的虛擬中斷處理單元,協(xié)調(diào)兩個(gè)操作系統(tǒng)之間的運(yùn)行,并提供一系列在兩個(gè)操作系統(tǒng)之間進(jìn)行通信的機(jī)制。通常,基帶系統(tǒng)可以看成一個(gè)實(shí)時(shí)系統(tǒng), 其調(diào)度特性上要求進(jìn)程具有可搶占性和確定的響應(yīng)時(shí)間,具有較高優(yōu)先執(zhí)行的特點(diǎn)。應(yīng)用系統(tǒng)負(fù)責(zé)運(yùn)行功能性程序,處理用戶交互。虛擬機(jī)虛擬出兩個(gè)虛擬CPU,但同一時(shí)刻只能有一個(gè)客戶操作系統(tǒng)獲得實(shí)際的硬件CPU,HopenVM設(shè)計(jì)的實(shí)質(zhì)是優(yōu)化系統(tǒng)總的調(diào)度策略。HopenVM將每個(gè)虛擬機(jī)定義成以下六種狀態(tài)
(1)空轉(zhuǎn)狀態(tài)
(2)異常服務(wù)狀態(tài)
(3)低優(yōu)先級(jí)線程狀態(tài)
(4)高優(yōu)先級(jí)線程狀態(tài)
(5)偽中斷服務(wù)狀態(tài)
(6)虛擬中斷服務(wù)狀態(tài)
每個(gè)OS所處的運(yùn)行的狀態(tài)必為六種狀態(tài)之一,客戶操作系統(tǒng)設(shè)計(jì)者可以根據(jù)目標(biāo)系統(tǒng)的要求為每一個(gè)狀態(tài)設(shè)置一個(gè)優(yōu)先級(jí)。HopenVM虛擬機(jī)調(diào)度策略按照虛擬機(jī)當(dāng)前狀態(tài)的優(yōu)先級(jí)進(jìn)行調(diào)度,優(yōu)先級(jí)高者獲得CPU。HopenVM提供必要的虛擬設(shè)備,包括虛擬中斷器、虛擬定時(shí)器、虛擬終端和虛擬管道。
1、虛擬化寄存器的方法
類似于硬件實(shí)現(xiàn)時(shí)寄存器地址的映射可以采用IO地址映射和MEMORY地址映射思想, 我們用內(nèi)存地址單元直接仿真寄存器單元,以實(shí)現(xiàn)虛擬化的寄存器集合。相應(yīng)地,提供對(duì)這些虛擬化的寄存器存取的函數(shù)讀函數(shù)和寫函數(shù)。(1)讀函數(shù)定義
unsigned HVM_ffriteRegister (int register_addr, unsigned value); 說(shuō)明寫虛擬寄存器。返回?cái)?shù)值是該虛擬寄存器原先的內(nèi)容。(2)寫函數(shù)定義
unsigned HVM_ReadRegister (int register_addr); 說(shuō)明讀虛擬寄存器。2、虛擬化虛擬中斷控制器的方法
基于以上虛擬化寄存器的方法,提供一組虛擬的虛擬中斷控制器。基于虛擬中斷控制器,HopenVM為每個(gè)虛擬機(jī)提供64個(gè)虛擬中斷和32個(gè)偽中斷,在虛擬機(jī)操作系統(tǒng)中,只能操作虛擬中斷控制器。真實(shí)的硬件通過(guò)映射的方式和虛擬中斷建立對(duì)應(yīng)關(guān)系,真實(shí)中斷不能共享,只能被某一個(gè)虛擬機(jī)所運(yùn)行的操作系統(tǒng)使用,可通過(guò)“虛擬中斷映射表”事先將系統(tǒng)真實(shí)中斷預(yù)分配,也可以通過(guò)HopenVM中斷注冊(cè)的方法改變?cè)撝袛嘣谟成浔淼膶傩浴V袛嗫刂破饔布耆蒆openVM控制,虛擬機(jī)中的操作系統(tǒng)不能直接操作中斷控制器硬件,只能操作虛擬中斷控制器。HopenVM為每一個(gè)虛擬機(jī)都提供一個(gè)有64個(gè)虛擬中斷和32個(gè)偽中斷的虛擬中斷控制器。有的虛擬中斷有對(duì)應(yīng)的硬件中斷,有的則沒(méi)有對(duì)應(yīng)的硬件中斷。操作系統(tǒng)可以通過(guò)調(diào)用虛擬中斷控制器操作程序允許和禁止指定的虛擬中斷。如果該虛擬中斷對(duì)應(yīng)了硬件中斷,則HopenVM會(huì)根據(jù)要求操作對(duì)應(yīng)的硬件中斷控制器。中斷處理程序應(yīng)該按照如下方式運(yùn)行 void interrupt_entry ( Reg—save )
{ Int state—save, int—n;
保存寄存器現(xiàn)場(chǎng),將reg_save中的數(shù)據(jù)移動(dòng)到寄存器現(xiàn)場(chǎng)保存區(qū)中。開(kāi)放CPU的IRQ中斷和FIQ中斷。State_save = HVM_ReadRegister(VM_STATE_SAVE);
while ( (int)(int_n = HVM_ReadRegister(VM_INTC_QINTR) >= O ) {
if ( int_n是偽中斷){ 通過(guò)HVM_WriteRegiSter操作將狀態(tài)設(shè)置成偽中斷狀態(tài), 開(kāi)放虛擬中斷。}
處理中斷int_n;
}
通過(guò)HVM_WriteRegister操作恢復(fù)中斷前的狀態(tài)
}
大部分虛擬中斷會(huì)直接對(duì)應(yīng)某個(gè)真實(shí)中斷。直接對(duì)應(yīng)虛擬中斷的真實(shí)中斷使用標(biāo)準(zhǔn)的真實(shí)中斷處理程序。該處理程序如下運(yùn)行(1)根據(jù)中斷的類型操作真實(shí)的中斷控制器。(2)向虛擬機(jī)發(fā)送對(duì)應(yīng)的虛擬中斷。由于真實(shí)中斷的優(yōu)先級(jí)并不按照中斷號(hào)排列,因此如果要使真實(shí)中斷的優(yōu)先級(jí)能同時(shí)反映在虛擬中斷上,那么真實(shí)中斷號(hào)就必須按照中斷的優(yōu)先級(jí)對(duì)應(yīng)的虛擬中斷號(hào)。這樣對(duì)應(yīng)的虛擬中斷號(hào)就可能與真實(shí)中斷號(hào)不是同一個(gè)號(hào)。3、構(gòu)造虛擬設(shè)備系統(tǒng)的方法
HopenVM在硬件之上構(gòu)建中斷虛擬設(shè)備,建立起虛中斷和偽中斷為主的中斷虛擬系統(tǒng), 再以虛擬機(jī)和中斷虛擬系統(tǒng)為基礎(chǔ),虛擬出定時(shí)器、控制臺(tái)、管道等若干虛擬設(shè)備,Hopen VM架構(gòu)下的虛擬設(shè)備具有豐富的擴(kuò)展功能。虛擬設(shè)備和硬件設(shè)備的寄存器組類似,虛擬中斷及偽中斷的處理流程和真實(shí)中斷相一致,因此虛擬設(shè)備完全具備了真實(shí)硬件設(shè)備的操作方法和流程。虛擬管道是基于HopenVM和偽中斷設(shè)計(jì)的一個(gè)虛擬設(shè)備,硬件上沒(méi)有對(duì)應(yīng)的真實(shí)設(shè)備,其主要功能是建立兩個(gè)操作系統(tǒng)之間的數(shù)據(jù)通信通道,使得兩個(gè)建立在HopenVM上的邏輯上相互隔離的客戶操作系統(tǒng)之間可以進(jìn)行數(shù)據(jù)通信,類似與在兩個(gè)獨(dú)立的微處理器之間用獨(dú)立的硬件通道,比如串行口或者并行口進(jìn)行通信。HopenVM提供可配置個(gè)數(shù)的連接兩個(gè)虛擬機(jī)的雙向虛擬管道。每一個(gè)虛擬管道都可以分別指定各個(gè)方向的緩存的大小。所有虛擬管道共享一個(gè)虛擬管道中斷,偽中斷,使用中斷狀態(tài)位來(lái)快速判斷哪一個(gè)虛擬管道有中斷。每一個(gè)虛擬管道可以工作于三種數(shù)據(jù)傳輸方式
(1)字節(jié)流管道管道中傳輸?shù)氖亲止?jié)流,不區(qū)分?jǐn)?shù)據(jù)包的邊界。發(fā)送方一次發(fā)送的報(bào)文可能被接收方分若干次取出,發(fā)送方多次發(fā)送的報(bào)文也可能被合并從而被接收方一次取出ο(2)定長(zhǎng)數(shù)據(jù)包管道管道中傳輸?shù)氖枪潭ㄩL(zhǎng)度的數(shù)據(jù)包。發(fā)送方每次只能發(fā)送一個(gè)數(shù)據(jù)包,接收方每次只能接收一個(gè)數(shù)據(jù)包。(3)指針管道管道中傳輸?shù)氖侵羔樁皇菙?shù)據(jù)內(nèi)容。發(fā)送方每次只能發(fā)送一個(gè)指針,接收方每次只能接收一個(gè)指針。如圖1所示,兩端的操作系統(tǒng)分別有各自的虛擬寄存器,依靠虛擬管道實(shí)現(xiàn)兩端寄存器的互訪,從而達(dá)到兩個(gè)操作系統(tǒng)通信的目的。兩個(gè)操作系統(tǒng)虛擬寄存器之間有一致對(duì)應(yīng)的關(guān)系,當(dāng)一端操作寄存器時(shí),通過(guò)虛擬管道的通信,另一端對(duì)應(yīng)寄存器就會(huì)發(fā)生相應(yīng)的變化。由于基帶系統(tǒng)和應(yīng)用系統(tǒng)分屬兩個(gè)操作系統(tǒng),應(yīng)用系統(tǒng)需要和基帶系統(tǒng)的協(xié)議棧通信,實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)交互,同時(shí)為滿足系統(tǒng)省電策略的優(yōu)化,協(xié)議棧需優(yōu)先集成電源管理的底層實(shí)現(xiàn),因此OS雙方需要進(jìn)行省電交互。交互的過(guò)程通過(guò)HopenVM虛擬管道實(shí)現(xiàn)。本發(fā)明的目的是支持基帶系統(tǒng)和應(yīng)用系統(tǒng)分離的軟件架構(gòu),進(jìn)行底層軟件架構(gòu)的優(yōu)化,設(shè)計(jì)Hopen VM虛擬硬件系統(tǒng),提出虛擬微處理器的概念,其結(jié)果是從基帶系統(tǒng)和應(yīng)用系統(tǒng)看,硬件系統(tǒng)依然是基帶處理器和應(yīng)用處理器兩個(gè)微處理器,這樣的設(shè)計(jì)實(shí)現(xiàn)很大程度上節(jié)省了手機(jī)硬件設(shè)計(jì)成本,減小了系統(tǒng)功耗,使有限的硬件資源適合于復(fù)雜軟件架構(gòu)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種用于嵌入式操作系統(tǒng)的虛擬機(jī)(HopenVM),其在單個(gè)硬件微處理器上建立兩個(gè)不同的嵌入式操作系統(tǒng),從而把一個(gè)嵌入式系統(tǒng)的物理處理器芯片轉(zhuǎn)化為多個(gè)邏輯的芯片系統(tǒng),Hopen VM負(fù)責(zé)對(duì)真實(shí)硬件進(jìn)行管理,向兩個(gè)操作系統(tǒng)抽象出兩個(gè)不同的虛擬中斷處理單元,協(xié)調(diào)兩個(gè)操作系統(tǒng)之間的運(yùn)行,并提供一系列在兩個(gè)操作系統(tǒng)之間進(jìn)行通信的機(jī)制。
2.如權(quán)利要求1所述的用于嵌入式操作系統(tǒng)的虛擬機(jī),其中所述HopenVM提供必要的虛擬設(shè)備,包括虛擬寄存器、虛擬中斷器、虛擬定時(shí)器、虛擬終端和虛擬管道。
3.如權(quán)利要求2所述的用于嵌入式操作系統(tǒng)的虛擬機(jī),其中所述虛擬寄存器用內(nèi)存地址單元,通過(guò)提供讀寫函數(shù)的方法,仿真對(duì)寄存器單元的讀寫,由此可以把一組內(nèi)存地址單元轉(zhuǎn)化為寄存器集合,從而實(shí)現(xiàn)虛擬化的寄存器集合。
4.如權(quán)利要求2所述的用于嵌入式操作系統(tǒng)的虛擬機(jī),其中所述虛擬中斷器是基于所述虛擬寄存器而得到的,并且所述HopenVM提供一個(gè)有64個(gè)虛擬中斷和32個(gè)偽中斷的虛擬中斷器。
5.如權(quán)利要求2所述的用于嵌入式操縱系統(tǒng)的虛擬機(jī),其中基于所述虛擬寄存器,而在兩個(gè)操作系統(tǒng)中分別實(shí)現(xiàn)虛擬的寄存器端點(diǎn),在兩個(gè)寄存器端點(diǎn)之間形成數(shù)據(jù)通道,從而實(shí)現(xiàn)虛擬管道。
6.如權(quán)利要求5所述的用于嵌入式操縱系統(tǒng)的虛擬機(jī),其中HopenVM提供可配置個(gè)數(shù)的連接兩個(gè)虛擬機(jī)的雙向虛擬管道。
7.一種基于蜂窩網(wǎng)通信的移動(dòng)終端設(shè)備,其包括如權(quán)利要求1-6任一所述的用于嵌入式操縱系統(tǒng)的虛擬機(jī)。
8.一種用于嵌入式操作系統(tǒng)的虛擬機(jī)(HopenVM)的實(shí)現(xiàn)方法,所述HopenVM用于在單個(gè)硬件微處理器上建立兩個(gè)不同的嵌入式操作系統(tǒng),從而把一個(gè)嵌入式系統(tǒng)的物理處理器芯片轉(zhuǎn)化為多個(gè)邏輯的芯片系統(tǒng),Hopen VM負(fù)責(zé)對(duì)真實(shí)硬件進(jìn)行管理,向兩個(gè)操作系統(tǒng)抽象出兩個(gè)不同的虛擬中斷處理單元,協(xié)調(diào)兩個(gè)操作系統(tǒng)之間的運(yùn)行,并提供一系列在兩個(gè)操作系統(tǒng)之間進(jìn)行通信的機(jī)制,其中包括以下步驟a)提供虛擬寄存器的步驟;b)提供虛擬中斷器的步驟;c)提供虛擬定時(shí)器的步驟;d)提供虛擬終端的步驟和通過(guò)虛擬管道的步馬聚ο
9.如權(quán)利要求8所述的方法,其中所述提供虛擬寄存器的步驟包括所述虛擬寄存器用內(nèi)存地址單元,通過(guò)提供讀寫函數(shù)的方法,仿真對(duì)寄存器單元的讀寫,由此可以把一組內(nèi)存地址單元轉(zhuǎn)化為寄存器集合,從而實(shí)現(xiàn)虛擬化的寄存器集合。
10.如權(quán)利要求8所述的方法,其中提供所述虛擬中斷器的步驟包括所述虛擬中斷器是基于所述虛擬寄存器而得到的,并且所述HopenVM提供一個(gè)有64個(gè)虛擬中斷和32個(gè)偽中斷的虛擬中斷器。
11.如權(quán)利要求8所述的方法,其中提供所述虛擬管道的步驟包括基于所述虛擬寄存器,而在兩個(gè)操作系統(tǒng)中分別實(shí)現(xiàn)虛擬的寄存器端點(diǎn),在兩個(gè)寄存器端點(diǎn)之間形成數(shù)據(jù)通道,從而實(shí)現(xiàn)虛擬管道。
12.如權(quán)利要求11所述的方法,其中HopenVM提供可配置個(gè)數(shù)的連接兩個(gè)虛擬機(jī)的雙向虛擬管道。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式操作系統(tǒng)虛擬機(jī)(簡(jiǎn)稱HopenVM)及該虛擬機(jī)核心技術(shù)的實(shí)現(xiàn)方法。該產(chǎn)品支持在單個(gè)硬件微處理器上建立兩個(gè)不同的嵌入式操作系統(tǒng),從而把一個(gè)嵌入式系統(tǒng)的物理處理器芯片轉(zhuǎn)化為多個(gè)邏輯的芯片系統(tǒng),并且在兩個(gè)操作系統(tǒng)之間,建立類似與硬件通信機(jī)制的虛擬化的通信機(jī)制。本文中說(shuō)明的實(shí)現(xiàn)方法,可以在邏輯上隔離兩個(gè)不同特性的軟件系統(tǒng)。
文檔編號(hào)G06F9/455GK102541616SQ20101059285
公開(kāi)日2012年7月4日 申請(qǐng)日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者奉旭輝, 王新社, 顧玉良 申請(qǐng)人:北京凱思昊鵬軟件工程技術(shù)有限公司