一種操作系統(tǒng)管理器、虛擬機(jī)和操作系統(tǒng)間切換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種操作系統(tǒng)管理器、虛擬機(jī)和操作系統(tǒng)間切換方法。
【背景技術(shù)】
[0002]虛擬化是使計(jì)算機(jī)的各種實(shí)體資源如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,通過鏡像的方式呈現(xiàn)出來,打破了實(shí)體結(jié)構(gòu)間的不可切割的障礙,即這些資源的虛擬部分是不受現(xiàn)有資源的架設(shè)、地域或物理組態(tài)所限制,使用戶可以比原本的組態(tài)更好的方式來應(yīng)用這些資源。
[0003]隨著云計(jì)算技術(shù)的不斷推廣,虛擬化應(yīng)用越發(fā)顯的重要,目前,主要通過單個虛擬機(jī)承載單個操作系統(tǒng)鏡像,當(dāng)某一項(xiàng)任務(wù)需要兩個甚至多個操作系統(tǒng)鏡像完成時,則需要在一個操作系統(tǒng)鏡像完成當(dāng)前任務(wù)后,關(guān)閉該操作系統(tǒng)鏡像所在的虛擬機(jī),然后開啟另一臺虛擬機(jī)才能加載并切換到該另一臺虛擬機(jī)中的另一個操作系統(tǒng)鏡像繼續(xù)任務(wù),在這一過程中,操作系統(tǒng)鏡像間的切換過程主要通過關(guān)閉和開啟虛擬機(jī)實(shí)現(xiàn),而無法實(shí)現(xiàn)操作系統(tǒng)鏡像間的快速切換。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種操作系統(tǒng)管理器、虛擬機(jī)和操作系統(tǒng)間切換方法,實(shí)現(xiàn)了操作系統(tǒng)鏡像間的快速切換。
[0005]—種操作系統(tǒng)管理器,包括:接口單元、內(nèi)核服務(wù)單元、虛擬硬件服務(wù)單元和鏡像加載單元,其中,
[0006]所述接口單元,用于監(jiān)聽正在運(yùn)行的外設(shè)的第一操作系統(tǒng)鏡像發(fā)出的目標(biāo)熱切換命令,并將該命令傳遞給所述內(nèi)核服務(wù)單元;
[0007]所述內(nèi)核服務(wù)單元,用于設(shè)置外設(shè)的所有操作系統(tǒng)鏡像對應(yīng)的熱切換命令,接收所述接口單元發(fā)送的所述目標(biāo)熱切換命令,向所述虛擬硬件服務(wù)單元發(fā)送所述目標(biāo)熱切換命令,并接收所述虛擬硬件服務(wù)單元發(fā)送的所述虛擬硬件驅(qū)動信息,根據(jù)所述虛擬硬件驅(qū)動信息,記錄并保存外設(shè)的所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù),并觸發(fā)所述鏡像加載單元;
[0008]所述虛擬硬件服務(wù)單元,用于接收所述內(nèi)核服務(wù)單元發(fā)送的所述目標(biāo)熱切換命令,并將該目標(biāo)熱切換命令發(fā)送給外設(shè)的虛擬B1S,接收外設(shè)的所述虛擬B1S提供的外設(shè)的虛擬硬件驅(qū)動信息,并將該虛擬硬件驅(qū)動信息發(fā)送給所述內(nèi)核服務(wù)單元;
[0009]所述鏡像加載單元,在接收到所述內(nèi)核服務(wù)單元觸發(fā)時,用于加載外設(shè)的第二操作系統(tǒng)鏡像,以完成從外設(shè)的所述第一操作系統(tǒng)鏡像到外設(shè)的所述第二操作系統(tǒng)鏡像的切換。
[0010]優(yōu)選地,所述內(nèi)核服務(wù)單元,包括:可視化界面子單元、迀移服務(wù)子單元、數(shù)據(jù)庫子單元和備份子單元中的任意一個或多個,其中,
[0011]所述可視化界面子單元,用于設(shè)置外設(shè)的所有操作系統(tǒng)鏡像對應(yīng)的熱切換命令,接收所述接口單元發(fā)送的所述目標(biāo)熱切換命令,并向所述虛擬硬件服務(wù)單元發(fā)送所述目標(biāo)熱切換命令;
[0012]所述迀移服務(wù)子單元,用于接收所述虛擬硬件服務(wù)單元發(fā)送的所述虛擬硬件驅(qū)動信息,根據(jù)所述虛擬硬件驅(qū)動信息,記錄外設(shè)的所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù),形成XML文件和/或JSON文件,并將所述XML文件和/或JSON文件發(fā)送給所述數(shù)據(jù)庫子單元;
[0013]所述數(shù)據(jù)庫子單元,用于存儲所述XML文件和/或JSON文件,并對所述XML文件和/或JSON文件進(jìn)行解析、封裝,形成封裝文件;
[0014]所述備份子單元,用于獲取并備份所述數(shù)據(jù)庫子單元中的所述封裝文件。
[0015]優(yōu)選地,所述鏡像加載單元,用于檢測外設(shè)的第二操作系統(tǒng)鏡像是否為第一次加載,如果是,則為該外設(shè)的第二操作系統(tǒng)鏡像設(shè)置存儲空間和入口指針,通過所述入口指針,將所述外設(shè)的第二操作系統(tǒng)鏡像加載到所述存儲空間中;否則,直接加載所述外設(shè)的第二操作系統(tǒng)鏡像。
[0016]優(yōu)選地,所述鏡像加載單元,進(jìn)一步用于:檢測所有可用操作系統(tǒng)鏡像文件;
[0017]所述可視化界面子單元,進(jìn)一步用于:建立操作系統(tǒng)鏡像存儲鏈表,為所述所有可用操作系統(tǒng)鏡像文件生成對應(yīng)的特征信息,并將所述特征信息存儲在所述操作系統(tǒng)鏡像存儲鏈表中,通過可視化界面展示所述操作系統(tǒng)鏡像存儲鏈表中的所有特征信息,在接收到所述接口單元發(fā)送的所述目標(biāo)熱切換命令時,選中所述操作系統(tǒng)鏡像存儲鏈表中的目標(biāo)特征信息。
[0018]優(yōu)選地,所述數(shù)據(jù)庫子單元,進(jìn)一步用于向完成加載的所述外設(shè)的第二操作系統(tǒng)鏡像提供所需的封裝文件。
[0019]優(yōu)選地,該操作系統(tǒng)管理器采用UEFI系統(tǒng)加載器框架。
[0020]優(yōu)選地,該操作系統(tǒng)管理器應(yīng)用于虛擬機(jī)中。
[0021]一種虛擬機(jī),包括:上述任一種操作系統(tǒng)管理器、至少兩個操作系統(tǒng)鏡像、虛擬B1S和虛擬硬件,其中,
[0022]所述至少兩個操作系統(tǒng)鏡像中,每一個操作系統(tǒng)鏡像,在運(yùn)行時,用于接收目標(biāo)熱切換命令,并發(fā)送所述目標(biāo)熱切換命令給所述操作系統(tǒng)管理器;
[0023]所述虛擬B1S,用于接收所述操作系統(tǒng)管理器發(fā)送的所述目標(biāo)熱切換命令,加載所述虛擬硬件,獲取所述虛擬硬件的信息,并將所述虛擬硬件的信息提供給所述操作系統(tǒng)管理器;
[0024]所述虛擬硬件,用于支撐所述至少兩個操作系統(tǒng)鏡像的運(yùn)行。
[0025]優(yōu)選地,在所述虛擬機(jī)啟動后,通過所述虛擬B1S加載所述操作系統(tǒng)啟動管理器;通過外設(shè)的鍵盤觸發(fā)所述操作系統(tǒng)啟動管理器選定需要加載的第一操作系統(tǒng)鏡像,啟動所述第一虛擬操作系統(tǒng),并將虛擬機(jī)的控制權(quán)交給所述第一虛擬操作系統(tǒng)。
[0026]優(yōu)選地,所述至少兩個操作系統(tǒng)鏡像中,每一個操作系統(tǒng)鏡像,在運(yùn)行時接收目標(biāo)熱切換命令后,釋放虛擬機(jī)的控制權(quán),并將所述虛擬機(jī)的控制權(quán)轉(zhuǎn)交給所述操作系統(tǒng)管理器。
[0027]優(yōu)選地,所述虛擬B1S采用UEFI技術(shù)框架。
[0028]優(yōu)選地,所述操作系統(tǒng)管理器采用UEFI系統(tǒng)加載器框架。
[0029]一種操作系統(tǒng)間切換方法,將上述任一種操作系統(tǒng)管理器設(shè)置于虛擬機(jī)中,在所述虛擬機(jī)的存儲空間中存儲至少兩個操作系統(tǒng)鏡像文件,并設(shè)置所有操作系統(tǒng)鏡像對應(yīng)的熱切換命令,在所述虛擬機(jī)啟動后,運(yùn)行選定的第一操作系統(tǒng)鏡像,還包括:
[0030]確定正在運(yùn)行的所述第一操作系統(tǒng)鏡像發(fā)出的目標(biāo)熱切換命令;
[0031 ] 將該目標(biāo)熱切換命令發(fā)送給虛擬B1S ;
[0032]接收所述虛擬B1S提供的虛擬硬件驅(qū)動信息;
[0033]根據(jù)所述虛擬硬件驅(qū)動信息,記錄并保存所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù);
[0034]根據(jù)所述目標(biāo)熱切換命令,加載第二操作系統(tǒng)鏡像,以完成從所述第一操作系統(tǒng)鏡像到所述第二操作系統(tǒng)鏡像的切換。
[0035]優(yōu)選地,所述記錄并保存所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù),包括:為所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù)形成XML文件和/或JSON文件,并對所述XML文件和/或JSON文件進(jìn)行解析、封裝,形成封裝文件,并對該封裝文件進(jìn)行保存,并備份所述封裝文件;
[0036]在所述加載第二操作系統(tǒng)鏡像之后,進(jìn)一步包括:向完成加載的所述外設(shè)的第二操作系統(tǒng)鏡像提供所需的封裝文件。
[0037]優(yōu)選地,所述加載第二操作系統(tǒng)鏡像,包括:檢測所述第二操作系統(tǒng)鏡像是否為第一次加載,如果是,則為該第二操作系統(tǒng)鏡像設(shè)置存儲空間和入口指針,通過所述入口指針,將所述第二操作系統(tǒng)鏡像加載到所述存儲空間中;否則,直接加載所述第二操作系統(tǒng)鏡像。
[0038]優(yōu)選地,在所述設(shè)置所有操作系統(tǒng)鏡像對應(yīng)的熱切換命令之后,在所述運(yùn)行選定的第一操作系統(tǒng)鏡像之前,進(jìn)一步包括:
[0039]建立操作系統(tǒng)鏡像存儲鏈表;
[0040]檢測所有可用操作系統(tǒng)鏡像文件,并為所述所有可用操作系統(tǒng)鏡像文件生成對應(yīng)的特征信息;
[0041]將所述特征信息存儲在所述操作系統(tǒng)鏡像存儲鏈表,并建立所述特征信息與熱切換命令間的對應(yīng)關(guān)系;
[0042]所述運(yùn)行選定的第一操作系統(tǒng)鏡像,包括:通過可視化界面展示所述操作系統(tǒng)鏡像存儲鏈表中的所有特征信息,在接收到目標(biāo)熱切換命令時,根據(jù)所述特征信息與熱切換命令間的對應(yīng)關(guān)系,選定所述第一操作系統(tǒng)鏡像對應(yīng)的特征信息,運(yùn)行選定的第一操作系統(tǒng)鏡像。
[0043]本發(fā)明實(shí)施例提供了一種操作系統(tǒng)管理器、虛擬機(jī)和操作系統(tǒng)間切換方法,該操作系統(tǒng)管理器,包括:接口單元、內(nèi)核服務(wù)單元、虛擬硬件服務(wù)單元和鏡像加載單元,其中,所述接口單元,用于監(jiān)聽正在運(yùn)行的外設(shè)的第一操作系統(tǒng)鏡像發(fā)出的目標(biāo)熱切換命令,并將該命令傳遞給內(nèi)核服務(wù)單元;所述內(nèi)核服務(wù)單元,用于接收到所述接口單元發(fā)送的所述目標(biāo)熱切換命令,向所述虛擬硬件服務(wù)單元發(fā)送所述目標(biāo)熱切換命令,并接收所述虛擬硬件服務(wù)單元發(fā)送的所述虛擬硬件驅(qū)動信息,根據(jù)所述虛擬硬件驅(qū)動信息,記錄并保存外設(shè)的所述第一操作系統(tǒng)鏡像的配置狀態(tài)和數(shù)據(jù),并觸發(fā)所述鏡像加載單元;所述虛擬硬件服務(wù)單元,用于接收所述內(nèi)核服務(wù)單元發(fā)送的目標(biāo)熱切換命令,并將該目標(biāo)熱切換命令發(fā)送給外設(shè)的虛擬B1S,接收外設(shè)的所述虛擬B1S提供的外設(shè)的虛擬硬件驅(qū)動信息,并將該虛擬硬件驅(qū)動信息發(fā)送給內(nèi)核服務(wù)單元;所述鏡像加載單元,在接收到所述內(nèi)核服務(wù)單元觸發(fā)時,用于加載外設(shè)的第二操作系統(tǒng)鏡像,以完成從外設(shè)的所述第一操作系統(tǒng)鏡像到外設(shè)的所述第二操作系統(tǒng)鏡像的切換,因此,該操作系統(tǒng)管理器實(shí)