專利名稱:一種啟動(dòng)多操作系統(tǒng)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多操作系統(tǒng)技術(shù)領(lǐng)域,尤指一種啟動(dòng)多操作系統(tǒng)的方法和裝置。
背景技術(shù):
多核處理器由多個(gè)核組成,其中包括一個(gè)主核以及若千從核。主核就是
多核處理器上電后啟動(dòng)的第一個(gè)核;從核就是在主核啟動(dòng)后,被主核使能的 核。 一般從核硬件重啟時(shí),主核不會(huì)硬件重啟;但主核硬件重啟時(shí),整個(gè)多 核處理器都會(huì)重啟。因此運(yùn)行于主核的操作系統(tǒng)稱為主操作系統(tǒng),運(yùn)行于從 核的操作系統(tǒng)稱為從操作系統(tǒng)。
圖l是現(xiàn)有技術(shù)中的多核處理器系統(tǒng)的典型硬件架構(gòu)示意圖。在圖1中, 多核處理器有兩個(gè)核,分別為核O和核l,其中核0為主核,核1為從核; 內(nèi)存、閃存(Flash )和硬盤等外部資源由兩個(gè)核共享;啟動(dòng)閃存(Boot Flash ) 的容量比較小, 一般只存放操作系統(tǒng)的啟動(dòng)加載程序(Bootloader),并且 多核處理器上電后的第一條指令必須映射到Boot Flash上,即Boot loader 是多核處理器上電后執(zhí)行的第一個(gè)程序,類似于PC機(jī)的基本輸入輸出系統(tǒng) (BIOS)。
在圖1所示的多核處理器系統(tǒng)中運(yùn)行多搡作系統(tǒng),每個(gè)核運(yùn)行一個(gè)獨(dú)立 的操作系統(tǒng),即核0運(yùn)行操作系統(tǒng)0,核1運(yùn)行操作系統(tǒng)1 ,而且為了避免
兩個(gè)操作系統(tǒng)在訪問外部資源時(shí)產(chǎn)生沖突,需要對(duì)外部資源認(rèn)為進(jìn)行一些規(guī)
劃,例如, 一種規(guī)劃方式如下
對(duì)于閃存Flash,存放操作系統(tǒng)0的啟動(dòng)文件,限制只能操作系統(tǒng)O訪 問;對(duì)應(yīng)硬盤,存在操作系統(tǒng)1的啟動(dòng)文件,限制只能操作系統(tǒng)l訪問;啟動(dòng)閃存Boot Flash比較特殊,兩個(gè)核啟動(dòng)時(shí)的第 一條指令是相同的,都位于 Boot Flash中,兩個(gè)操作系統(tǒng)均需要訪問;對(duì)于內(nèi)存,在邏輯上劃分為三個(gè) 部分操作系統(tǒng)0只能訪問的部分、操作系統(tǒng)1只能訪問的部分以及操作系 統(tǒng)O和1都能訪問的共享內(nèi)存部分。需要說明的是,這只是對(duì)外部資源的一 種規(guī)劃方式而已,可以根據(jù)實(shí)際需要進(jìn)行不同的規(guī)劃。
為了說明多核多操作系統(tǒng)的啟動(dòng)流程,這里首先介紹單核單操作系統(tǒng)的 啟動(dòng)流程
圖2是現(xiàn)有技術(shù)中的單核單操作系統(tǒng)的啟動(dòng)流程示意圖。如圖2所示, 在單核處理器中運(yùn)行的單操作系統(tǒng)的啟動(dòng)流程包括以下四個(gè)步驟
201, 單核處理器上電后,跳轉(zhuǎn)到啟動(dòng)閃存Boot Flash中,開始執(zhí)行Boot loader第一條代碼指令;
202, 依據(jù)Boot loader的代碼指令將Boot loader自身搬移到高端內(nèi)存, 并跳轉(zhuǎn)到內(nèi)存中執(zhí)行Boot loader;這里高端內(nèi)存是指內(nèi)存中的具有高位地址 的存儲(chǔ)空間,相應(yīng)地低端內(nèi)存是指內(nèi)存中的具有低位地址的存儲(chǔ)空間。
203, 依據(jù)Boot loader的代碼指令將閃存Flash中的啟動(dòng)文件搬移到低 端內(nèi)存中;
204, 依據(jù)Boot loader的代碼指令跳轉(zhuǎn)到操作系統(tǒng)的入口地址,即操作 系統(tǒng)的啟動(dòng)文件的入口地址,執(zhí)行操作系統(tǒng)的啟動(dòng)文件,從而使得操作系統(tǒng) 啟動(dòng)。
多核多操作系統(tǒng)的啟動(dòng)也需要完成上述四個(gè)基本步驟,但需要注意核與 核之間的配合,避免訪問外部資源的沖突。在目前的多核多操作系統(tǒng)中采用 單Boot loader方式,即一個(gè)Boot loader啟動(dòng)多個(gè)操作系統(tǒng), 一般都是在主 核上運(yùn)行Boot loader, Boot loader向內(nèi)存中加載從核的操作系統(tǒng)啟動(dòng)文件, 然后通過核間消息或共享內(nèi)存通知從核啟動(dòng)自己的操作系統(tǒng),最后主核啟動(dòng) 自己的操作系統(tǒng)。
圖3是圖1中的多操作系統(tǒng)啟動(dòng)的流程示意圖。核0為主核,運(yùn)行操作 系統(tǒng)0,使用內(nèi)存0;核1為從核,運(yùn)行操作系統(tǒng)1,使用內(nèi)存1,則如圖3所示
核O執(zhí)行由實(shí)線箭頭表示的如下步驟
301A ,執(zhí)行啟動(dòng)閃存中的Boot loader的代碼,進(jìn)行初始化,使能核1;
302A,依據(jù)Boot loader的代碼指令將Boot loader自身從啟動(dòng)閃存中搬 移到內(nèi)存0的高端地址,跳轉(zhuǎn)到內(nèi)存中執(zhí)行Boot loader;
303A,依據(jù)內(nèi)存中的Boot loader的代碼指令將操作系統(tǒng)1的啟動(dòng)文件 1力口載到內(nèi)存1中,通過核間消息通知核1啟動(dòng);
304A,依據(jù)內(nèi)存中的Boot loader的代碼指令將操作系統(tǒng)0的啟動(dòng)文件 O力口栽到內(nèi)存0中;
305A,依據(jù)Boot loader的代碼指令跳轉(zhuǎn)到操作系統(tǒng)0的啟動(dòng)文件0的 入口地址,運(yùn)行啟動(dòng)文件0,從而^f吏得:慄作系統(tǒng)0啟動(dòng)。
核1執(zhí)行由虛線箭頭表示的如下步驟
301B,核1被使能后,執(zhí)行Boot loader的代碼,完成必要的初始化, 進(jìn)入睡眠狀態(tài);
302B,接收到核0發(fā)送的核間消息通知后,從該通知中解析出操作系 統(tǒng)1的啟動(dòng)文件1的入口地址,跳轉(zhuǎn)到啟動(dòng)文件1的入口地址,運(yùn)行啟動(dòng)文 件1 ,從而使得操作系統(tǒng)1啟動(dòng)。
從上述流程可以看出,從核只執(zhí)行少量的Boot loader代碼指令,完成 必要的初始化,從核操作系統(tǒng)1的啟動(dòng)文件1的加載由核0完成。
但是現(xiàn)有的單Boot loader方案存在如下的缺陷
1、 操作不靈活,只能先啟動(dòng)從核的操作系統(tǒng),再啟動(dòng)主核的操作系統(tǒng) 由于Boot loader在主核上運(yùn)行,如果主核的操作系統(tǒng)啟動(dòng)了 ,內(nèi)存中
的Boor loader就會(huì)被覆蓋掉,所以必須先啟動(dòng)從核的操作系統(tǒng),再啟動(dòng)主 核的操作系統(tǒng)。
2、 從核的操作系統(tǒng)不能單獨(dú)重新啟動(dòng),只能主核和從核的搮作系統(tǒng)同 時(shí)重新啟動(dòng)
由于Boot loader在主核上運(yùn)行,主核不重新啟動(dòng)的話,從核的操作系纟充也無法重新啟動(dòng)。
綜上所述,現(xiàn)有的啟動(dòng)多操作系統(tǒng)的方法不夠靈活,使用不方便。
發(fā)明內(nèi)容
本發(fā)明提供了 一種啟動(dòng)多操作系統(tǒng)的方法,該方法使得多操作系統(tǒng)的啟 動(dòng)變得靈活,方便使用。
本發(fā)明還提供了 一種啟動(dòng)多操作系統(tǒng)的裝置,該裝置使得多操作系統(tǒng)的 啟動(dòng)變得靈活,方便使用。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的
本發(fā)明公開了 一種啟動(dòng)多操作系統(tǒng)的方法,該方法應(yīng)用于運(yùn)行在多核處 理器上的多操作系統(tǒng),其中,主核運(yùn)行的操作系統(tǒng)為主操作系統(tǒng),從核運(yùn)行 的操作系統(tǒng)為從操作系統(tǒng),該方法包括
為所述多操作系統(tǒng)中的每一個(gè)操作系統(tǒng)均配置一個(gè)對(duì)應(yīng)的啟動(dòng)加載程 序并保存,其中,各啟動(dòng)加載程序共享一個(gè)公共起始程序;
主核運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的主操作系統(tǒng)的編號(hào)找到對(duì) 應(yīng)于主操作系統(tǒng)的啟動(dòng)加載程序;主核運(yùn)行主操作系統(tǒng)的啟動(dòng)加載程序,根 據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令使能從核并啟動(dòng)主操作系統(tǒng);
從核被使能后,運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的從操作系統(tǒng)的 編號(hào)找到對(duì)應(yīng)于該從操作系統(tǒng)的啟動(dòng)加載程序;從核運(yùn)行該從操作系統(tǒng)的啟 動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng)該從操作系 統(tǒng)。
本發(fā)明還公開了 一種啟動(dòng)多操作系統(tǒng)的裝置,該裝置包括多核處理器中 的主核與從核以及存儲(chǔ)模塊,其中,主核運(yùn)行主操作系統(tǒng),從核運(yùn)行從操作 系統(tǒng),
所述存儲(chǔ)模塊,用于保存對(duì)應(yīng)于不同操作系統(tǒng)的不同啟動(dòng)加載程序以及 各啟動(dòng)加載程序共享的公共起始程序;
所述主核,用于運(yùn)行所述存儲(chǔ)模塊中的公共起始程序,根據(jù)自身運(yùn)行的主操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊中找到對(duì)應(yīng)于主操作系統(tǒng)的啟動(dòng)加載程序,運(yùn) 行主操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令
使能從核并啟動(dòng)主操作系統(tǒng);
所述從核,用于在被使能后,運(yùn)行所述存儲(chǔ)模塊中的公共起始程序,根 據(jù)自身運(yùn)行的從操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊中找到對(duì)應(yīng)于該從操作系統(tǒng)的 啟動(dòng)加載程序,運(yùn)行該從操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟 動(dòng)加載程序的代碼指令啟動(dòng)該從操作系統(tǒng)。
由上述技術(shù)方案可見,本發(fā)明這種為多操作系統(tǒng)中的每個(gè)操作系統(tǒng)都配 置一個(gè)單獨(dú)的啟動(dòng)加載程序,各啟動(dòng)加栽程序分別啟動(dòng)各自對(duì)應(yīng)的操作系統(tǒng) 的技術(shù)方案,使得主核的操作系統(tǒng)和從核的操作系統(tǒng)不必再受啟動(dòng)順序的限 制,且從核的操作系統(tǒng)可以獨(dú)立地重新啟動(dòng),不必再受限于主核,從而使得 多操作系統(tǒng)的啟動(dòng)變得靈活,方便使用。
圖1是現(xiàn)有技術(shù)中的多核處理器系統(tǒng)的典型硬件架構(gòu)示意圖2是現(xiàn)有技術(shù)中的單核單操作系統(tǒng)的啟動(dòng)流程示意圖3是圖1中的多操作系統(tǒng)啟動(dòng)的流程示意圖4是本發(fā)明實(shí)施例 一種啟動(dòng)多操作系統(tǒng)的方法的流程圖5是本發(fā)明實(shí)施例中的啟動(dòng)雙操作系統(tǒng)的流程示意圖6是本發(fā)明實(shí)施例一種啟動(dòng)多操作系統(tǒng)的裝置的組成結(jié)構(gòu)框圖。
具體實(shí)施例方式
本發(fā)明的核心思想是多操作系統(tǒng)中的每個(gè)操作系統(tǒng)都對(duì)應(yīng)一個(gè)啟動(dòng)加 載程序Boot loader,各Boot loader與對(duì)應(yīng)的操作系統(tǒng)共享硬件資源;由于各 核上電后執(zhí)行的第一條指令地址是相同的,因此各個(gè)Bootloader需要共享少 量公共代碼,當(dāng)各核確定出要啟動(dòng)的操作系統(tǒng)的編號(hào)后,進(jìn)入相應(yīng)的Boot loader代碼中執(zhí)行以啟動(dòng)相應(yīng)的操作系統(tǒng)。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
圖4是本發(fā)明實(shí)施例 一種啟動(dòng)多操作系統(tǒng)的方法的流程圖,該方法應(yīng)用 于運(yùn)行在多核處理器上的多操作系統(tǒng),其中,主核運(yùn)行的操作系統(tǒng)為主操作
系統(tǒng),從核運(yùn)行的操作系統(tǒng)為從操作系統(tǒng),如圖4所示,該方法包括以下步 驟
步驟401,為多操作系統(tǒng)中的每一個(gè)操作系統(tǒng)均配置一個(gè)對(duì)應(yīng)的啟動(dòng)加 載程序并保存,其中,各啟動(dòng)加栽程序共享一個(gè)公共起始程序。
本步驟中,各啟動(dòng)加載程序共享一個(gè)公共起始程序是因?yàn)槎嗪颂幚砥髦?的各個(gè)核上電后執(zhí)行的第一條指令地址是相同的,這里公共起始程序的第一 個(gè)地址即為各核上電后執(zhí)行的第一條指令地址。
步驟402,主核運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的主操作系統(tǒng)的 編號(hào)找到對(duì)應(yīng)于主操作系統(tǒng)的啟動(dòng)加載程序;主核運(yùn)行主操作系統(tǒng)的啟動(dòng)加 載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令使能從核并啟動(dòng)主操作 系統(tǒng)。
步驟403,從核被使能后,運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的從 操作系統(tǒng)的編號(hào)找到對(duì)應(yīng)于該從操作系統(tǒng)的啟動(dòng)加載程序;從核運(yùn)行該從操 作系統(tǒng)的啟動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng) 該從操作系統(tǒng)。
下面以雙核處理器上運(yùn)行的雙操作系統(tǒng)為例,對(duì)圖4所示的方案進(jìn)一步 i羊細(xì)i兌明。
在本實(shí)施例中,雙核處理器上的主核為運(yùn)行操作系統(tǒng)0的核0,從核為 運(yùn)行操作系統(tǒng)1的核1;操作系統(tǒng)0的內(nèi)存稱為內(nèi)存0,操作系統(tǒng)l的內(nèi)存 稱為內(nèi)存l;操作系統(tǒng)0的啟動(dòng)文件稱為啟動(dòng)文件0,操作系統(tǒng)l的啟動(dòng)文 件稱為啟動(dòng)文件1;啟動(dòng)文件0和啟動(dòng)文件1可以根據(jù)實(shí)際需要保存在適當(dāng) 的存儲(chǔ)介質(zhì)中,如閃存或硬盤等,這里不做限定,只要各相應(yīng)的啟動(dòng)加栽文 件中記錄對(duì)應(yīng)的啟動(dòng)文件的存儲(chǔ)起始地址即可。則根據(jù)圖4所示的方案該雙核處理器上運(yùn)行的雙操作系統(tǒng)的啟動(dòng)流程如圖5所示。
圖5是本發(fā)明實(shí)施例中的啟動(dòng)雙操作系統(tǒng)的流程示意圖。如圖5所示 核O執(zhí)行由實(shí)線箭頭表示的如下步驟
步驟Al,雙核處理器上電后,核0執(zhí)行的第一條指令地址為公共起始 程序的第一個(gè)地址,因此核O運(yùn)行啟動(dòng)閃存中的公共起始程序,根據(jù)自身的 運(yùn)行的操作系統(tǒng)0的編號(hào)0從啟動(dòng)閃存中找到操作系統(tǒng)0的啟動(dòng)加載程序0 , 并跳轉(zhuǎn)到啟動(dòng)加載程序0中運(yùn)行該啟動(dòng)加載程序0;
步驟A2,核O依據(jù)啟動(dòng)加載程序0的代碼指令進(jìn)行初始化,使能核1, 并依據(jù)啟動(dòng)加載程序O的代碼指令將該啟動(dòng)加栽程序0自身搬移至內(nèi)存0的 高端地址,并跳轉(zhuǎn)到內(nèi)存中運(yùn)行該啟動(dòng)加載程序0;
步驟A3,核0依據(jù)內(nèi)存0中的啟動(dòng)加栽程序0的代碼指令將操作系統(tǒng) 0的啟動(dòng)文件0加載到內(nèi)存0中;
步驟A4,核0跳轉(zhuǎn)到內(nèi)存0中的啟動(dòng)文件0的入口地址,運(yùn)行該啟動(dòng) 文件0,從而使得操作系統(tǒng)0啟動(dòng)。
核1執(zhí)行由虛線箭頭表示的如下步驟
步驟B1,核1被使能后,執(zhí)行的第一條代碼指令地址為公共起始程序 的第一個(gè)地址,因此核1在被使能后運(yùn)行啟動(dòng)閃存中的公共起始程序,根據(jù) 自身的運(yùn)行的操作系統(tǒng)1的編號(hào)1從啟動(dòng)閃存中找到操作系統(tǒng)1的啟動(dòng)加栽 程序1,并跳轉(zhuǎn)到啟動(dòng)加載程序1中運(yùn)行該啟動(dòng)加載程序1;
步驟B2,核1依據(jù)啟動(dòng)加載程序1的代碼指令進(jìn)行初始化,并依據(jù)啟 動(dòng)加載程序1的代碼指令將該啟動(dòng)加載程序1自身搬移至內(nèi)存1的高端地 址,并跳轉(zhuǎn)到內(nèi)存中運(yùn)^f亍該啟動(dòng)加栽程序1;
步驟A3,核1依據(jù)內(nèi)存1中的啟動(dòng)加栽程序1的代碼指令將操作系統(tǒng) 1的啟動(dòng)文件1加載到內(nèi)存1中;
步驟A4,核1跳轉(zhuǎn)到內(nèi)存1中的啟動(dòng)文件1的入口地址,運(yùn)4亍該啟動(dòng) 文件1,從而使得操作系統(tǒng)1啟動(dòng)。
之后,當(dāng)操作系統(tǒng)1需要重啟時(shí),仍按照上述步驟Bl至步驟B4執(zhí)行
ii即可,不再依賴于操作系統(tǒng)0的使能,也不會(huì)影響操作系統(tǒng)0的執(zhí)行。
可見,在本發(fā)明實(shí)施例的上述方案中,多操作系統(tǒng)的啟動(dòng)更加靈活,只要從核被使能,則不必再受啟動(dòng)順序的限制,從核的操作系統(tǒng)可以單獨(dú)重新啟動(dòng),不再受限于主核。這種操作系統(tǒng)之間的松散耦合關(guān)系,為系統(tǒng)啟動(dòng)、調(diào)試和維護(hù)提供了極大的方便。
圖6是本發(fā)明實(shí)施例 一種啟動(dòng)多操作系統(tǒng)的裝置的組成結(jié)構(gòu)框圖。如圖6所示,該裝置包括多核處理器中的主核601與從核602以及存儲(chǔ)模塊603,其中,主核601運(yùn)行主操作系統(tǒng),從核602運(yùn)行從操作系統(tǒng)。
在圖6中,存儲(chǔ)模塊603,用于保存對(duì)應(yīng)于不同操作系統(tǒng)的不同啟動(dòng)加載程序以及各啟動(dòng)加載程序共享的公共起始程序;
主核601,用于運(yùn)行所述存儲(chǔ)模塊603中的公共起始程序,根據(jù)自身運(yùn)行的主操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊603中找到對(duì)應(yīng)于主操作系統(tǒng)的啟動(dòng)加栽程序,運(yùn)行主操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序
的代碼指令使能從核并啟動(dòng)主操作系統(tǒng);
從核602,用于在被使能后,運(yùn)行所述存儲(chǔ)模塊603中的公共起始程序,根據(jù)自身運(yùn)行的從操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊603中找到對(duì)應(yīng)于該從操作系統(tǒng)的啟動(dòng)加載程序,運(yùn)行該從操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)該從搡作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng)該從操作系統(tǒng)。
在圖6中,主核60L用于依據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始化,并依據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令將主操作系統(tǒng)的啟動(dòng)加載程序搬移至主操作系統(tǒng)的內(nèi)存中執(zhí)行;用于依據(jù)主操作系統(tǒng)的內(nèi)存中的啟動(dòng)加載程序的代碼指令將主操作系統(tǒng)的啟動(dòng)文件加載到主操作系統(tǒng)的內(nèi)存中,并跳轉(zhuǎn)到該主操作系統(tǒng)的啟動(dòng)文件的入口地址繼續(xù)執(zhí)行,啟動(dòng)主搡作系統(tǒng)。
在圖6中,從核602,用于依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始化,并依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令將從操作系統(tǒng)的啟動(dòng)加載程序搬移至從操作系統(tǒng)的內(nèi)存中執(zhí)行;用于依據(jù)從操作系統(tǒng)的內(nèi)存中的啟動(dòng)加栽程序的代碼指令將從操作系統(tǒng)的啟動(dòng)文件加載到從操作系統(tǒng)的內(nèi)存中,并跳轉(zhuǎn)到從操作系統(tǒng)的啟動(dòng)文件的入口地址繼續(xù)執(zhí)行,啟動(dòng)從操
作系統(tǒng)。
綜上所述,本發(fā)明這種為多操作系統(tǒng)中的每個(gè)操作系統(tǒng)都配置 一個(gè)單獨(dú)的啟動(dòng)加載程序,各啟動(dòng)加載程序分別啟動(dòng)各自對(duì)應(yīng)的操作系統(tǒng)的技術(shù)方案,使得主核的操作系統(tǒng)和從核的操作系統(tǒng)不必再受啟動(dòng)順序的限制,且從核的操作系統(tǒng)可以獨(dú)立地重新啟動(dòng),不必再受限于主核,從而使得多操作系統(tǒng)的啟動(dòng)變得靈活,方便使用。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種啟動(dòng)多操作系統(tǒng)的方法,該方法應(yīng)用于運(yùn)行在多核處理器上的多操作系統(tǒng),其中,主核運(yùn)行的操作系統(tǒng)為主操作系統(tǒng),從核運(yùn)行的操作系統(tǒng)為從操作系統(tǒng),其特征在于,該方法包括為所述多操作系統(tǒng)中的每一個(gè)操作系統(tǒng)均配置一個(gè)對(duì)應(yīng)的啟動(dòng)加載程序并保存,其中,各啟動(dòng)加載程序共享一個(gè)公共起始程序;主核運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的主操作系統(tǒng)的編號(hào)找到對(duì)應(yīng)于主操作系統(tǒng)的啟動(dòng)加載程序;主核運(yùn)行主操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令使能從核并啟動(dòng)主操作系統(tǒng);從核被使能后,運(yùn)行所述公共起始程序,根據(jù)自身運(yùn)行的從操作系統(tǒng)的編號(hào)找到對(duì)應(yīng)于該從操作系統(tǒng)的啟動(dòng)加載程序;從核運(yùn)行該從操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng)該從操作系統(tǒng)。
2、 如權(quán)利要求l所述的方法,其特征在于,所述主核運(yùn)行主操作系統(tǒng) 的啟動(dòng)加載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng)主操作系 統(tǒng)包括主核依據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始化,并依椐主 操作系統(tǒng)的啟動(dòng)加栽程序的代碼指令將主操作系統(tǒng)的啟動(dòng)加載程序搬移至 主操作系統(tǒng)的內(nèi)存中執(zhí)行;主核依據(jù)主操作系統(tǒng)的內(nèi)存中的啟動(dòng)加載程序的代碼指令將主操作系 統(tǒng)的啟動(dòng)文件加載到主操作系統(tǒng)的內(nèi)存中,并跳轉(zhuǎn)到該主操作系統(tǒng)的啟動(dòng)文 件的入口地址繼續(xù)執(zhí)行,啟動(dòng)主操作系統(tǒng)。
3、 如權(quán)利要求l所述的方法,其特征在于,所述從核運(yùn)行從操作系統(tǒng) 的啟動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令啟動(dòng)該從操 作系統(tǒng)包括從核依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始化,并依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令將從操作系統(tǒng)的啟動(dòng)加載程序搬移至 從操作系統(tǒng)的內(nèi)存中執(zhí)行;從核依據(jù)從操作系統(tǒng)的內(nèi)存中的啟動(dòng)加載程序的代碼指令將從操作系 統(tǒng)的啟動(dòng)文件加載到從操作系統(tǒng)的內(nèi)存中,并跳轉(zhuǎn)到從操作系統(tǒng)的啟動(dòng)文件 的入口地址繼續(xù)^M亍,啟動(dòng)從」澡作系統(tǒng)。
4、 一種啟動(dòng)多操作系統(tǒng)的裝置,該裝置包括多核處理器中的主核與從核以及存儲(chǔ)模塊,其中,主核運(yùn)行主操作系統(tǒng),從核運(yùn)行從操作系統(tǒng),其特征在于,所述存儲(chǔ)模塊,用于保存對(duì)應(yīng)于不同操作系統(tǒng)的不同啟動(dòng)加栽程序以及各啟動(dòng)加載程序共享的公共起始程序;所述主核,用于運(yùn)行所述存儲(chǔ)模塊中的公共起始程序,根據(jù)自身運(yùn)行的 主操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊中找到對(duì)應(yīng)于主操作系統(tǒng)的啟動(dòng)加載程序,運(yùn) 行主操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令 使能從核并啟動(dòng)主操作系統(tǒng);所述從核,用于在被使能后,運(yùn)行所述存儲(chǔ)模塊中的公共起始程序,根 據(jù)自身運(yùn)行的從操作系統(tǒng)的編號(hào)從存儲(chǔ)模塊中找到對(duì)應(yīng)于該從操作系統(tǒng)的 啟動(dòng)加栽程序,運(yùn)行該從操作系統(tǒng)的啟動(dòng)加載程序,根據(jù)該從操作系統(tǒng)的啟 動(dòng)加載程序的代碼指令啟動(dòng)該從操作系統(tǒng)。
5、 如權(quán)利要求4所述的裝置,其特征在于,所述主核,用于依據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始 化,并依據(jù)主操作系統(tǒng)的啟動(dòng)加載程序的代碼指令將主操作系統(tǒng)的啟動(dòng)加栽 程序搬移至主操作系統(tǒng)的內(nèi)存中執(zhí)行;用于依據(jù)主操作系統(tǒng)的內(nèi)存中的啟動(dòng) 加載程序的代碼指令將主操作系統(tǒng)的啟動(dòng)文件加載到主操作系統(tǒng)的內(nèi)存中, 并跳轉(zhuǎn)到該主操作系統(tǒng)的啟動(dòng)文件的入口地址繼續(xù)執(zhí)行,啟動(dòng)主操作系統(tǒng)。
6、 如權(quán)利要求4所述的方法,其特征在于,所述從核,用于依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令進(jìn)行初始 化,并依據(jù)從操作系統(tǒng)的啟動(dòng)加載程序的代碼指令將從操作系統(tǒng)的啟動(dòng)加栽程序搬移至從操作系統(tǒng)的內(nèi)存中執(zhí)行;用于依據(jù)從操作系統(tǒng)的內(nèi)存中的啟動(dòng) 加載程序的代碼指令將從操作系統(tǒng)的啟動(dòng)文件加載到從操作系統(tǒng)的內(nèi)存中, 并跳轉(zhuǎn)到從操作系統(tǒng)的啟動(dòng)文件的入口地址繼續(xù)執(zhí)行,啟動(dòng)從操作系統(tǒng)。
全文摘要
本發(fā)明公開了一種啟動(dòng)多操作系統(tǒng)的方法和裝置。方法包括為多操作系統(tǒng)中的每個(gè)操作系統(tǒng)都配置一個(gè)單獨(dú)的啟動(dòng)加載程序,通過各啟動(dòng)加載程序分別啟動(dòng)對(duì)應(yīng)的操作系統(tǒng)。本發(fā)明的技術(shù)方案,使得多操作系統(tǒng)的啟動(dòng)變得靈活,方便使用。
文檔編號(hào)G06F9/48GK101533355SQ20091008238
公開日2009年9月16日 申請(qǐng)日期2009年4月15日 優(yōu)先權(quán)日2009年4月15日
發(fā)明者朱而剛 申請(qǐng)人:杭州華三通信技術(shù)有限公司