專利名稱:雙操作系統平行處理的方法
技術領域:
本發(fā)明涉及一種雙操作系統平行處理的方法,特別是涉及一種架構在GNU Linux Kernel上的雙異質性操作系統平行處理的方法。
背景技術:
在計算機的工作概念中,硬件為計算機的實際工作者,而軟件是指操作系統核心 (Operation System Kernel)、操作系統(Operation System, OS)及應用程序。操作系統核 心是控制硬件以正確的工作,例如讓CPU能夠接受指令、硬盤能夠存取等工作。操作系統提 供程序開發(fā)者在提供有驅動程序的操作系統核心上發(fā)展應用程序。應用程序讓操作系統核 心與使用者之間更容易溝通,例如文字指令模式與圖形模式等。在服務器整合及提供多種應用程序的測試環(huán)境,例如架構在一操作系統核心上的 各種不同的操作系統來測試不同的應用程序環(huán)境。舉例說明,在一 GNU (GNU’ s not Unix) Linux Kernel上架構有一主操作系統,而在主操作系統中啟動一子操作系統,并且主操作 系統執(zhí)行一第一應用程序,而子操作系統執(zhí)行一第二應用程序。由于主操作系統與子操作 系統對GNU LinuxKernel而言為各自獨立的操作系統,因此需要利用虛擬機器(Virtual Machine)的技術,在主操作系統上架設一虛擬機器以整合子操作系統于主操作系統中,而 使得執(zhí)行在主操作系統的第一應用程序與執(zhí)行在子操作系統的第二應用程序在不同的操 作環(huán)境可在同一屏幕上顯示各自的結果。雖然可利用虛擬機器將兩個不同操作系統整合在一個操作系統核心上,但此種方 法對于硬件規(guī)格的需求較高,例如存儲器空間的需求較大,而且在啟動虛擬機器以執(zhí)行不 同操作系統的各自應用程序時會消耗較大的CPU負荷(CPU loading)。
發(fā)明內容
本發(fā)明的目的在于提供一種雙操作系統平行處理的方法,在不需要高的硬件規(guī)格 且不會增加CPU負荷的情況,使原先可執(zhí)行在子操作系統的應用程序容易整合到主操作 系統的平臺上執(zhí)行,而不影響兩個操作系統的原始架構,并且共同架構在一個GNU Linux Kernel上的兩個異質性的操作系統可以各自運作而不會造成沖突,并且可以共享硬件資 源。本發(fā)明的第一態(tài)樣在于提供一種雙操作系統平行處理的方法,藉由一操作系統核 心控制一計算機的一硬件,該方法包含下列步驟在該操作系統核心的上架構一主操作系統及一子操作系統;在該主操作系統執(zhí)行一第一應用程序,在該子操作系統執(zhí)行一第二應用程序;由該操作系統核心所接收的該硬件的指令或命令經由該主操作系統傳送至該第 一應用程序;由該第一應用程序將指令或命令轉換為用以在該第二應用程序所要執(zhí)行的程序 代碼;
由該第一應用程序將程序代碼經由該子操作系統傳送至該第二應用程序;由該第二應用程序執(zhí)行程序代碼,并將執(zhí)行的結果由該操作系統核心存放在一存 儲器或一文件系統;由該第一應用程序讀取該存儲器或該文件系統中該第二應用程序所執(zhí)行的結果, 其中該操作系統核心存取該存儲器或該文件系統中該第二應用程序所執(zhí)行的結果經由該 主操作系統以供該第一應用程序讀取;以及由該第一應用程序將所讀取的結果經由該主操作系統傳送至該操作系統核心。依據本發(fā)明的第一態(tài)樣所述的方法的第二態(tài)樣,其中,由該操作系統核心所接收的該硬件的指令或命令經由該主操作系統傳送至該第 一應用程序的一輸入服務手段;由該第一應用程序的該輸入服務手段將所接收的指令或命令轉換為用以在該第 二應用程序所要執(zhí)行的程序代碼;由該第一應用程序的一輸出服務手段經由該子操作系統呼叫該第二應用程序,并 將程序代碼經由該子操作系統傳送至該第二應用程序;由該第一應用程序的該輸出服務手段讀取該存儲器或該文件系統中該第二應用 程序所執(zhí)行的結果;以及由該第一應用程序的該輸入服務手段將所讀取的結果經由該主操作系統傳送至 該操作系統核心,由該操作系統核心根據所接收的結果驅動該硬件。依據本發(fā)明的第二態(tài)樣所述的方法的第三態(tài)樣,其中,該硬件為該計算機的系統 架構及周邊裝置。依據本發(fā)明的第二態(tài)樣所述的方法的第四態(tài)樣,其中,該操作系統核心為一 GNU Linux Kernel。依據本發(fā)明的第二態(tài)樣所述的方法的第五態(tài)樣,其中,由該第二應用程序執(zhí)行程 序代碼所得的結果為一存儲器映像或一文件的形式。本發(fā)明的第六態(tài)樣在于提供一種內儲一程序的計算機可讀取的記錄媒體,當一計 算機由該記錄媒體加載該程序并執(zhí)行后,可完成如上述第一至五態(tài)樣中任一態(tài)樣的方法。本發(fā)明的第七態(tài)樣在于提供一種內儲一程序的計算機程序產品,當一計算機由計 算機程序產品加載該計算機程序并執(zhí)行后,可完成如上述第一至五態(tài)樣中任一態(tài)樣的方 法。
圖1為本發(fā)明的雙操作系統平行處理的系統方塊圖;以及圖2為本發(fā)明的雙操作系統平行處理的方法的流程圖。附圖符號說明10 GNU Linux Kernel12 鍵盤14 鼠標16 VGA18存儲器
19網絡接口20主操作系統22子操作系統
24應用程序A26輸入服務手段28輸出服務手段30應用程序B
具體實施例方式
以下參照附圖來說明本發(fā)明的一較佳實施例。圖1為本發(fā)明的雙操作系統平行處理的系統方塊示意圖。在圖1中,作為操作系統 核心的GNU Linux Kernel 10是控制硬件(為計算機的系統架構及周邊裝置)的工作,例 如接收鍵盤12或鼠標14的數據或命令、將視訊數據傳送至VGA 16、在存儲器(如RAM) 18 存取數據或經由網絡接口 19傳送或接收數據等。在GNU Linux Kernel 10上架構一主操作系統20與一子操作系統22,兩操作系 統在GNU Linux Kernel 10上各自運作,而不會造成例如使用硬件資源的沖突。應用程序 A 24為在主操作系統20所執(zhí)行的應用程序,應用程序B 30為在子操作系統22所執(zhí)行的應 用程序。GNU Linux Kernel 10所接收的如鍵盤12或鼠標14的指令或命令經由主操作系 統20傳送至應用程序A 24的一輸入服務手段26,應用程序A 24的輸入服務手段26將所 接收的指令或命令轉換為用以在應用程序B 30所要執(zhí)行的程序代碼,應用程序A 24的一 輸出服務手段28經由子操作系統22呼叫應用程序B 30,并將程序代碼經由子操作系統22 傳送至應用程序B 30,應用程序A 24的輸出服務手段28讀取存儲器18或文件系統中應用 程序B30所執(zhí)行的結果,其中由應用程序B 30執(zhí)行程序代碼所得的結果為一存儲器映像或 一文件的形式,應用程序A 24的輸入服務手段26將所讀取的結果經由主操作系統20傳送 至GNU Linux Kernel 10,而由GNU Linux Kernel 10將該結果傳送至例如VGA 16的輸出
直ο圖2為本發(fā)明的雙操作系統平行處理的方法的流程圖。在說明圖2的流程時,同 時參考圖1的組件。為了更清楚本申請的雙操作系統平行處理的方法的應用,圖1中的各 組件以熟知技術的操作系統來替代說明。Google Andriod x86除了開發(fā)為手機軟件平臺的應用外,目前也有支持IBM x86 硬件架構平臺,本實施例是要在Google Android x86平臺上執(zhí)行為Linux X-Server的 應用程序的Firefox網頁瀏覽器。所以Google Android x86為主操作系統20,而Linux X-Server 為子操作系統 22,而Google Android x86 與 Linux X-Server 是架構在GNU Linux KernellO0并在Google Android x86上撰寫一應用程序A 24,其包含上述的輸入服務手 段26、輸出服務手段28,以及呼叫執(zhí)行Firefox的程序代碼。當使用者點選應用程序A 24 后,即啟動在Linux X-Server上的Firefox網頁瀏覽器。在圖2中,首先,在GNU Linux Kernel 10的上架構Google Android x86的主操作 系統 20 及 Linux X-Server 的子操作系統 24 (步驟 S50),而 GoogleAndroid x86 及 LinuxX-Server兩者為異質性的操作系 統,而可在GNU LinuxKernel 10上各自獨立運作,且共享 硬件資源。接著,在Google Android x86的主操作系統20執(zhí)行應用程序A 24,在Linux X-Server的子操作系統22執(zhí)行Firefox網頁瀏覽器(及圖1的應用程序B 30)(步驟S52)。由GNU Linux Kernel 10所接收的硬件的指令或命令經由GoogleAndroid x86的 主操作系統20傳送至應用程序A 24的輸入服務手段26(步驟S54)。舉例說明,使用者在 Firefox網頁瀏覽器中藉由鍵盤12或鼠標14點選其工作選項,GNU Linux Kernel 10將所 接收的鍵盤12或鼠標14的點選指令或命令經由Google Android x86的主操作系統20傳 送至應用程序A 24的輸入服務手段26。然后由應用程序A 24的輸入服務手段26將所接收的點選指令或命令轉換為用以 在Firefox網頁瀏覽器所要執(zhí)行的程序代碼(步驟S56)。其次,由應用程序A 24的輸出服 務手段26經由Linux X-Server的子操作系統22呼叫Firefox網頁瀏覽器,并將程序代碼 經由Linux X-Server的子操作系統22傳送至Firefox網頁瀏覽器(步驟S58)。由Firefox網頁瀏覽器執(zhí)行程序代碼(亦即執(zhí)行步驟S54中在Firefox網頁瀏覽 器中所點選的工作選項),并將執(zhí)行的結果由GNU Linux Kernel 10存放在存儲器18或文 件系統(未圖標)中(步驟S60)。舉例說明,使用者要在Firefox網頁瀏覽器瀏覽某一網 頁的信息,Firefox網頁瀏覽器經由LinuxX-Server的子操作系統22使GNU Linux Kernel 10驅動網絡接口 19,而由網絡抓取所要瀏覽的網頁的數據,GNU Linux Kernel 10將網絡 接口 19所抓取的數據存放在存儲器18中。接著,由應用程序A 24的輸出服務手段28讀取存儲器18 (或存放執(zhí)行結果為文 件形式的文件系統)中Firefox網頁瀏覽器所執(zhí)行的結果(即所要瀏覽的網頁的信息),其 中由GNU Linux Kernel 10存取存儲器18中Firefox網頁瀏覽器所執(zhí)行的結果經由Google Android x86的主操作系統20以供應用程序A 24讀取(步驟S62)。再者,由應用程序A 24的輸入服務手段26將所讀取的結果經由GoogleAndroid x86的主操作系統20傳送至GNU Linux Kernel 10,而由GNU LinuxKernel 10根據所接收 的結果(即所要瀏覽的網頁的信息)驅動VGA 16,而使使用者所要瀏覽的網頁的信息顯示 在Firefox網頁瀏覽器中(步驟S64)。本發(fā)明的上述雙操作系統平行處理的方法可以一程序型態(tài)來撰寫完成,并可將該 程序儲存于一計算機可讀取的記錄媒體,當計算機從該計算機可讀取的記錄媒體加載該程 序并執(zhí)行后,便可完成如上述說明及附圖中所示的方法步驟。同樣地,本發(fā)明的上述雙操作系統平行處理的方法可以一計算機程序產品來完 成,當計算機例如從網絡下載該計算機程序產品并執(zhí)行后,便可完成如上述說明及附圖中 所示的方法步驟。本發(fā)明的優(yōu)點在于提供一種雙操作系統平行處理的方法,在不需要高的硬件規(guī)格 且不會增加CPU負荷的情況,使原先可執(zhí)行在子操作系統的應用程序容易整合到主操作 系統的平臺上執(zhí)行,而不影響兩個操作系統的原始架構,并且共同架構在一個GNU Linux Kernel上的兩個異質性的操作系統可以各自運作而不會造成沖突,并且可以共享硬件資 源。雖然本發(fā)明已參照較佳具體實施例及舉例性附圖敘述如上,但其應不被視為是限制性的。本領域的技術 人員對其形態(tài)及具體實施例的內容所做的各種修改、省略及變化,均 不離開本發(fā)明的范圍。
權利要求
1.一種雙操作系統平行處理的方法,藉由一操作系統核心控制一計算機的一硬件,該 方法包含下列步驟在該操作系統核心的上架構一主操作系統及一子操作系統; 在該主操作系統執(zhí)行一第一應用程序,在該子操作系統執(zhí)行一第二應用程序; 由該操作系統核心所接收的該硬件的指令或命令經由該主操作系統傳送至該第一應 用程序;由該第一應用程序將指令或命令轉換為用以在該第二應用程序所要執(zhí)行的程序代碼;由該第一應用程序將程序代碼經由該子操作系統傳送至該第二應用程序; 由該第二應用程序執(zhí)行程序代碼,并將執(zhí)行的結果由該操作系統核心存放在一存儲器 或一文件系統;由該第一應用程序讀取該存儲器或該文件系統中該第二應用程序所執(zhí)行的結果,其中 該操作系統核心存取該存儲器或該文件系統中該第二應用程序所執(zhí)行的結果經由該主操 作系統以供該第一應用程序讀??;以及由該第一應用程序將所讀取的結果經由該主操作系統傳送至該操作系統核心。
2.如權利要求1所述的方法,其中,由該操作系統核心所接收的該硬件的指令或命令經由該主操作系統傳送至該第一應 用程序的一輸入服務手段;由該第一應用程序的該輸入服務手段將所接收的指令或命令轉換為用以在該第二應 用程序所要執(zhí)行的程序代碼;由該第一應用程序的一輸出服務手段經由該子操作系統呼叫該第二應用程序,并將程 序代碼經由該子操作系統傳送至該第二應用程序;由該第一應用程序的該輸出服務手段讀取該存儲器或該文件系統中該第二應用程序 所執(zhí)行的結果;以及由該第一應用程序的該輸入服務手段將所讀取的結果經由該主操作系統傳送至該操 作系統核心,由該操作系統核心根據所接收的結果驅動該硬件。
3.如權利要求1或2所述的方法,其中,該硬件為該計算機的系統架構及周邊裝置。
4.如權利要求1或2所述的方法,其中,該操作系統核心為一GNU LinuxKernel0
5.如權利要求1或2所述的方法,其中,由該第二應用程序執(zhí)行程序代碼所得的結果為 一存儲器映像或一文件的形式。
6.一種內儲一程序的計算機可讀取的記錄媒體,當一計算機由該記錄媒體加載該程序 并執(zhí)行后,可完成如權利要求1至5中任一權利要求所述的方法。
7.一種內儲一程序的計算機程序產品,當一計算機由計算機程序產品加載該計算機程 序并執(zhí)行后,可完成如權利要求1至5中任一權利要求所述的方法。
全文摘要
一種雙操作系統平行處理的方法,在操作系統核心的上架構一主操作系統及一子操作系統,在主操作系統執(zhí)行一第一應用程序,在子操作系統執(zhí)行一第二應用程序,由操作系統核心所接收的硬件的指令或命令傳送至第一應用程序,由第一應用程序將指令或命令轉換為用以在該第二應用程序所要執(zhí)行的程序代碼,由第一應用程序將程序代碼傳送至第二應用程序,由第二應用程序執(zhí)行程序代碼,并將執(zhí)行的結果存放在一存儲器或一文件系統,由第一應用程序讀取存儲器或文件系統中第二應用程序所執(zhí)行的結果,以及由第一應用程序將所讀取的結果傳送至操作系統核心。
文檔編號G06F9/54GK102043677SQ200910207740
公開日2011年5月4日 申請日期2009年10月22日 優(yōu)先權日2009年10月22日
發(fā)明者何文智 申請人:系微股份有限公司