虛擬bios的制作方法
【專利摘要】一種虛擬基本輸入輸出系統(tǒng)可以從不同的虛擬基本輸入輸出系統(tǒng)中選擇。該虛擬基本輸入輸出系統(tǒng)的選擇是通過控制器,并且該選擇可以是基于軟件堆?;蛘哂脩艚换?。
【專利說明】虛擬BI OS
【背景技術(shù)】
[0001]虛擬機(jī)監(jiān)控器或者管理器能夠允許可包括不同操作系統(tǒng)的不同虛擬機(jī)在計(jì)算設(shè)備上同時運(yùn)行。各種操作系統(tǒng)的多個實(shí)例可以共享虛擬化的硬件資源。計(jì)算設(shè)備能夠包括在啟動時測試硬件、啟動操作系統(tǒng)或者支持硬件之間的數(shù)據(jù)傳輸?shù)幕据斎胼敵鱿到y(tǒng)(BIOS)。
【專利附圖】
【附圖說明】
[0002]關(guān)于下圖來描述本發(fā)明的一些實(shí)施例:
[0003]圖1是根據(jù)示例實(shí)施的包括管理器的計(jì)算設(shè)備的框圖;
[0004]圖2是根據(jù)示例實(shí)施的包括管理器的計(jì)算設(shè)備的框圖;
[0005]圖3是用戶界面的示例實(shí)施;
[0006]圖4是根據(jù)示例實(shí)施的選擇虛擬BIOS的方法的流程圖;
[0007]圖5是根據(jù)示例實(shí)施的選擇虛擬BIOS的方法的流程圖;以及
[0008]圖6是根據(jù)示例實(shí)施的計(jì)算設(shè)備的框圖。
【具體實(shí)施方式】
[0009]計(jì)算設(shè)備包括在啟動時測試硬件、啟動操作系統(tǒng)或者支持硬件之間的數(shù)據(jù)傳輸?shù)幕据斎胼敵鱿到y(tǒng)(BIOS)。BIOS也可以包括用于計(jì)算系統(tǒng)的可擴(kuò)展固件接口(EFI)、統(tǒng)一可擴(kuò)展固件接口(UEFI)或者其它固件。計(jì)算設(shè)備可以包括用于控制虛擬機(jī)的管理器或者虛擬機(jī)監(jiān)控器。管理器可以管理包括軟件堆棧和虛擬BIOS (vBIOS)的虛擬機(jī)。軟件堆棧是能夠在虛擬機(jī)中運(yùn)行的操作系統(tǒng)或者應(yīng)用程序,例如Unix、Linux、文字處理器或者電子表格。管理器可以是管理計(jì)算機(jī)設(shè)備上的諸如操作系統(tǒng)的多個虛擬機(jī)或者相同虛擬機(jī)的多個實(shí)例的硬件或者軟件。管理器能夠管理計(jì)算設(shè)備的處理器、存儲器以及其它資源來分配給每個操作系統(tǒng)。
[0010]計(jì)算設(shè)備上的BIOS能夠與計(jì)算設(shè)備上的硬件通信。操作系統(tǒng)或者應(yīng)用程序必須能夠與BIOS通信。由于可以與計(jì)算設(shè)備一起使用的許多不同硬件配置或者操作系統(tǒng),因此BIOS可以包括對于操作系統(tǒng)或者具有不包括組件的硬件配置的系統(tǒng)來說不需要的許多指令或者例程,但是虛擬BIOS (vBIOS)對于操作系統(tǒng)或者硬件配置來說可能是特定的。
[0011]如果虛擬BIOS用于特定操作系統(tǒng)或者特定硬件配置,則特征可以包括在對于操作系統(tǒng)或者硬件配置特定的虛擬BIOS內(nèi)。在真實(shí)BIOS不支持操作系統(tǒng)或者虛擬設(shè)備所需的某一 BIOS接口的情況下,虛擬BIOS可以仿真所需要的功能。真實(shí)BIOS是在引導(dǎo)設(shè)備硬件時所運(yùn)行的B10S,而虛擬BIOS是在引導(dǎo)虛擬機(jī)或者虛擬設(shè)備時所運(yùn)行的BIOS。
[0012]在一個實(shí)施例中,計(jì)算設(shè)備可以包括軟件堆棧和管理軟件堆棧的運(yùn)行的管理器。計(jì)算設(shè)備還可以包括基于軟件堆棧來選擇第一 vBIOS和第二 vBIOS中的一個的控制器。第一 vB I OS和第二 vBIOS不同。第一 vBIOS和第二 vBIOS之間的不同可以是對軟件堆棧特征或者硬件組件的支持。[0013]軟件堆棧特征可以是例如認(rèn)證。認(rèn)證例程可以使用可信平臺模塊(TPM)來認(rèn)證用戶和系統(tǒng)上的硬件以及執(zhí)行加密與解密。認(rèn)證還可以允許單次登錄,其中用戶被認(rèn)證一次,并且該用戶對于其它服務(wù)自動地被認(rèn)證。
[0014]在一個實(shí)施例中,一種方法可以向虛擬機(jī)提供虛擬BIOS。該方法可以包括用于接收關(guān)于軟件堆棧的信息的處理器。該方法可以基于關(guān)于軟件堆棧的信息來從多個不同虛擬BIOS中選擇虛擬BIOS。該方法可以生成包括軟件堆棧和所選擇的虛擬BIOS的虛擬機(jī)。
[0015]圖1是根據(jù)示例實(shí)施的包括管理器的計(jì)算設(shè)備的框圖。計(jì)算設(shè)備可以包括管理器110。管理器可以管理軟件堆棧105的運(yùn)行。管理器110可以包括第一虛擬基本輸入輸出系統(tǒng)(vBIOS) 130 和第二 vBIOS 125。
[0016]軟件堆棧105可以在管理器110上運(yùn)行。軟件堆棧105可以是例如操作系統(tǒng)或者應(yīng)用程序。例如,操作系統(tǒng)可以是WebOS、Unix、Linux或者其它操作系統(tǒng)。
[0017]計(jì)算系統(tǒng)包括具有諸如控制器120的組件的硬件115??刂破?20可以基于軟件堆棧 105 從第一 vBIOS 130 和第二 vBIOS 125 中選擇 vBIOS。第一 vBIOS 130 和第二 vBIOS125不同。
[0018]在確定選擇哪個vBIOS時,控制器120可以確定軟件堆棧105是否具有特征并且基于vBIOS是否支持該特征來選擇vBIOS。例如,如果軟件堆棧105支持諸如單次登錄之類的用戶認(rèn)證,則控制器可以選擇支持用戶認(rèn)證的vBIOS??刂破?20可以確定軟件堆棧105是否不支持特征并且基于vBIOS是否支持該特征來選擇vBIOS。例如,如果軟件不支持光盤驅(qū)動器,則控制器120可以選擇不支持光盤驅(qū)動器的vBIOS。另一示例可以是不支持高級配置和電源接口(ACPl)的軟件堆棧,因此vBIOS不支持ACPI。
[0019]在一個實(shí)施例中,當(dāng)軟件堆棧105存儲在計(jì)算設(shè)備的計(jì)算機(jī)可讀介質(zhì)上時,軟件堆??梢酝c軟件堆棧105 —起使用的vBIOS —起出現(xiàn)。例如,如果軟件堆棧105是安裝在計(jì)算設(shè)備上作為虛擬機(jī)被運(yùn)行的操作系統(tǒng),則vBIOS可以提供有軟件堆棧105。例如,軟件堆棧可以通過從服務(wù)器、從外部計(jì)算機(jī)可讀介質(zhì)或者其它源下載來安裝。用于軟件堆棧的vBIOS可以存儲在與軟件堆棧相同的計(jì)算機(jī)可讀介質(zhì)上,或者如果軟件堆棧被下載,用于軟件堆棧的vBIOS可以包括有軟件堆棧并且如果利用軟件堆棧105生成虛擬機(jī),則用于軟件堆棧的vBIOS被安裝在待通過控制器120選擇的計(jì)算系統(tǒng)上。如果控制器120未選擇特定的vBIOS,則控制器120可以選擇對軟件堆?;蛘哂布M件不特定的通用vBIOS。如果選擇通用vBIOS,則與對于軟件堆棧或者硬件特定的vBIOS相比,虛擬機(jī)的效率可能降低,因?yàn)橥ㄓ胿BIOS可能必須運(yùn)行未被軟件堆?;蛘哂布M件使用的例程。
[0020]圖2是根據(jù)示例實(shí)施的包括管理器110的計(jì)算設(shè)備的框圖。計(jì)算系統(tǒng)的硬件115可以包括控制器120和真實(shí)BIOS 242。真實(shí)BIOS 242可以是在引導(dǎo)時被運(yùn)行來初始化計(jì)算設(shè)備的物理硬件115的代碼。計(jì)算設(shè)備可以包括第二軟件堆棧255。第二軟件堆棧255可以是不同于第一軟件堆棧105的第二操作系統(tǒng),或者可以是第一軟件堆棧105的第二實(shí)例。第二軟件堆棧255也可以是應(yīng)用程序??刂破?20可以基于第二軟件堆棧從第一虛擬基本輸入輸出系統(tǒng)(vBIOS) 130和第二 VB10S125中選擇vBIOS。
[0021]如果控制器120已經(jīng)選擇vBIOS,則管理器110可以基于第一軟件堆棧105管理虛擬機(jī)235。如果控制器120為虛擬機(jī)235選擇第一 vBIOS 130,則虛擬機(jī)可以包括第一軟件堆棧105和第一 vBIOS 130。在另一實(shí)施例中,如果控制器選擇第二 vBIOS,則第二虛擬機(jī)285可以包括第二軟件堆棧255和第二 vBIOS 125。
[0022]如果生成虛擬機(jī),則控制器可以查看不同標(biāo)準(zhǔn)來選擇vBIOS??刂破骺梢源_定軟件堆棧不支持硬件組件。如果軟件堆棧不支持硬件組件,則控制器可以選擇不對該硬件組件掃描的vBIOS。例如,如果軟件堆棧是不支持光盤驅(qū)動器的操作系統(tǒng),則控制器可以選擇不包括對不被軟件堆棧支持的該組件的掃描245的vBIOS,例如第二 vBIOS 125,這可以在啟動虛擬機(jī)或者引導(dǎo)計(jì)算設(shè)備時節(jié)省時間。
[0023]控制器120可以確定軟件堆棧支持與認(rèn)證有關(guān)的例程或者組件。如果例如軟件堆棧支持認(rèn)證,則控制器可以選擇包括認(rèn)證247例程的vBIOS,例如第二 VB10S125。將特征增加到vBIOS以供虛擬機(jī)使用的能力可以允許特征被增加到可能在計(jì)算設(shè)備中不具有BIOS支持但是可以由虛擬機(jī)中的特定vBIOS支持的軟件堆棧。
[0024]vBIOS可以與軟件堆棧一起出現(xiàn),可以預(yù)安裝在計(jì)算設(shè)備中,或者可以從網(wǎng)絡(luò)中下載。計(jì)算設(shè)備可以包括網(wǎng)絡(luò)連接240。網(wǎng)絡(luò)連接240可以在例如專用網(wǎng)絡(luò)上將計(jì)算設(shè)備連接到諸如服務(wù)器的其它計(jì)算設(shè)備或者連接到因特網(wǎng)。服務(wù)器可以是響應(yīng)于來自計(jì)算設(shè)備的請求的計(jì)算機(jī)或者程序??刂破?20可以選擇未本地存儲在計(jì)算設(shè)備上的vBIOS??刂破?20可以使用網(wǎng)絡(luò)連接240從網(wǎng)絡(luò)或因特網(wǎng)上的服務(wù)器請求例如vBIOS,如果控制器120選擇第二 vBIOS 125,并且第二 vBIOS 125未存儲在計(jì)算設(shè)備上,則控制器可以從網(wǎng)絡(luò)上的服務(wù)器請求第二 vBIOS 125。
[0025]圖3是用戶界面的示例實(shí)施。用戶界面300可用于向用戶顯示通過控制器選擇哪個vBIOS用于軟件堆棧。例如,如果系統(tǒng)包括第一軟件堆棧和第二軟件堆棧,則用戶界面可以顯不表不由第一操作系統(tǒng)A305標(biāo)識的第一軟件堆棧的方框和表不由第二操作系統(tǒng)B310標(biāo)識的第二軟件堆棧的方框。例如,如果控制器為操作系統(tǒng)A305選擇第一 vBIOS,則該第一 vBIOS可以例如通過單選按扭或者其它一些指示器來指示。用戶界面還可以允許用戶選擇vBIOS以供虛擬機(jī)使用。在一個實(shí)施例中,用戶界面可能不允許用戶選擇與軟件堆棧不兼容的vBIOS。例如,如果vBIOS不支持軟件堆棧的一些特征,則用戶界面可能不允許用戶為具有該軟件堆棧的虛擬機(jī)選擇該vBIOS。
[0026]如果利用軟件堆棧和vBIOS生成虛擬機(jī),則管理器可以管理軟件堆棧和vBIOS的運(yùn)行。在啟動虛擬機(jī)代碼時,vBIOS被運(yùn)行,并且控制然后被傳遞到軟件堆棧。例如,如果軟件堆棧是操作系統(tǒng),則vBIOS會將控制傳遞到操作系統(tǒng)并且管理器可以管理操作系統(tǒng)在計(jì)算設(shè)備上的運(yùn)行。
[0027]圖4是根據(jù)示例實(shí)施的選擇虛擬BIOS的方法的流程圖。該方法可以通過諸如圖1的計(jì)算設(shè)備的設(shè)備來執(zhí)行。在405處,控制器可以接收關(guān)于軟件堆棧的信息??刂破骺梢允菆D1的控制器120。在410處,由控制器接收的信息可用于從多個不同虛擬BIOS中選擇虛擬BIOS。該信息可以是由軟件堆棧支持的一列特征或者為了支持軟件堆棧特征的所需要的一列組件。如果例如為了支持軟件堆棧的特征所需要的一列組件被提供,則控制器可以基于計(jì)算設(shè)備的物理硬件來選擇虛擬BIOS。在415處,所選擇的vBIOS可用于生成包括軟件堆棧和vBIOS的虛擬機(jī)。
[0028]圖5是根據(jù)示例實(shí)施的選擇虛擬BIOS (vBIOS)的方法的流程圖??刂破髟?05處可以接收關(guān)于軟件堆棧的信息并且基于該信息從多個不同vBIOS中選擇vBIOS。在520處,該方法可以確定是選擇第一 vBIOS還是第二 vBIOS,在525處,該方法可以繼續(xù)確定所選擇的vBIOS是否在計(jì)算設(shè)備上。如果所選擇的vBIOS不在計(jì)算設(shè)備上,則該方法可以在530處下載所選擇的vBIOS。計(jì)算系統(tǒng)可以例如從網(wǎng)絡(luò)上的服務(wù)器中下載vBIOS。根據(jù)所選擇的vBIOS,由vBIOS提供的特征可以不同。例如,如果選擇第一 vBIOS,則可以在535處執(zhí)行特征A,并且如果選擇第二 vBIOS,則可以在545處執(zhí)行特征B。如果從多個不同虛擬BIOS中選擇第一 vBIOS,則特征可以是認(rèn)證用戶,并且如果從多個不同虛擬BIOS中選擇第二虛擬BIOS,則特征是不認(rèn)證用戶。
[0029]圖6是根據(jù)示例實(shí)施的計(jì)算設(shè)備的框圖。計(jì)算設(shè)備600可以包括處理器605。處理器605可以是控制器。處理器605可以連接到控制器集線器610。控制器集線器610可以連接到輸入設(shè)備,例如鍵盤、鼠標(biāo)、傳感器或者其它輸入設(shè)備??刂破骷€器610還可以連接到輸出設(shè)備,例如連接到顯示器630的圖形控制器620??刂破骷€器還可以連接到計(jì)算機(jī)可讀介質(zhì)615或者616。計(jì)算機(jī)可讀介質(zhì)可以包括如下的代碼:如果運(yùn)行,則該代碼可以使處理器605接收關(guān)于軟件堆棧的信息并且基于所接收的信息從多個不同虛擬BIOS中選擇虛擬BIOS。該代碼然后可以使處理器生成包括軟件堆棧和所選擇的虛擬BIOS的虛擬機(jī),計(jì)算機(jī)可讀介質(zhì)615或者616也可以包括如下的代碼:如果通過處理器運(yùn)行,則該代碼使處理器605從服務(wù)器請求所選擇的虛擬BIOS。計(jì)算機(jī)可讀介質(zhì)615或者616上的代碼還可以包括如果被運(yùn)行則使處理器執(zhí)行如下動作的代碼:如果從多個不同的虛擬BIOS中選擇第一虛擬BIOS則認(rèn)證用戶,以及而如果從多個不同的虛擬BIOS中選擇第第二虛擬BIOS則不認(rèn)證用戶。
[0030]如上所述的技術(shù)可以具體實(shí)現(xiàn)在用于配置計(jì)算設(shè)備來執(zhí)行該方法的計(jì)算機(jī)可讀介質(zhì)中。計(jì)算機(jī)可讀介質(zhì)可以例如但不限制地包括下列任意數(shù)量:包括磁盤和磁帶存儲介質(zhì)的磁存儲介質(zhì);諸如光盤介質(zhì)(例如CD-ROM、CD-R等)和數(shù)字視頻盤存儲介質(zhì)的光存儲介質(zhì);全息存儲器;包括諸如閃存、EEPR0M、EPROM、ROM、之類的基于半導(dǎo)體存儲器的非易失性存儲介質(zhì);鐵磁數(shù)字存儲器;包括寄存器、緩存器或者高速緩存器、主存儲器、RAM等的易失性存儲介質(zhì);以及因特網(wǎng),僅僅舉幾個例子。其它新的和各種類型的計(jì)算機(jī)可讀介質(zhì)可以用來存儲和/或發(fā)送在這里討論的軟件模塊。計(jì)算設(shè)備可以在以下的許多形式中被找到,包括但不限于:主機(jī)、小型計(jì)算機(jī)、服務(wù)器、工作站、個人計(jì)算機(jī)、筆記本、個人數(shù)字助理、各種無線設(shè)備以及嵌入式系統(tǒng),僅僅舉幾個例子。
[0031]在以上描述中,提出很多細(xì)節(jié)來提供對本發(fā)明的理解。然而,本領(lǐng)域技術(shù)人員可以理解,沒有這些細(xì)節(jié)也可以實(shí)踐本發(fā)明。雖然本發(fā)明已經(jīng)關(guān)于有限數(shù)目的實(shí)施例被公開,但本領(lǐng)域技術(shù)人員將由此理解大量修改和變化。目的是,所附權(quán)利要求涵蓋像落入本發(fā)明真實(shí)范圍和精神內(nèi)的這種修改和變化。
【權(quán)利要求】
1.一種計(jì)算設(shè)備,包括: 軟件堆棧; 管理所述軟件堆棧的運(yùn)行的管理器;以及 基于所述軟件堆棧選擇第一 VBIOS和第二 VBIOS中的一個的控制器; 其中所述第一 vBIOS和所述第二 vBIOS不同。
2.如權(quán)利要求1所述的設(shè)備,其中通過所述控制器的所述選擇是基于關(guān)于所述軟件堆棧的信息,其中所述信息包括由所述軟件堆棧支持的特征或者組件中的至少一個。
3.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括具有第一軟件堆棧和所述第一vBIOS的虛擬機(jī)。
4.如權(quán)利要求3所述的設(shè)備,進(jìn)一步包括具有第二軟件堆棧和所述第二vBIOS的第二虛擬機(jī)。
5.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括選擇所述第一vBIOS和所述第二 vBIOS中的一個以在具有所述軟件堆棧的虛擬機(jī)中運(yùn)行的用戶界面。
6.如權(quán)利要求1所述的設(shè)備,進(jìn)一步包括從服務(wù)器請求所述第二vBIOS的網(wǎng)絡(luò)連接。
7.如權(quán)利要求1所述的系統(tǒng),其中所述第二vBIOS包括對在所述第一 vBIOS中不支持的軟件堆棧特征的支持。
8.如權(quán)利要求1所述的系統(tǒng),其中所述第二vBIOS包括對在所述第一 vBIOS中不支持的硬件組件的支持。
9.一種將虛擬BIOS (vBIOS)提供給虛擬機(jī)的方法,包括: 通過控制器接收關(guān)于軟件堆棧的信息; 基于關(guān)于所述軟件堆棧的所述信息從多個不同虛擬BIOS中選擇vBIOS ; 生成包括所述軟件堆棧和所述虛擬BIOS的虛擬機(jī)。
10.如權(quán)利要求9所述的方法,進(jìn)一步包括基于在所述軟件堆棧中對組件的支持來選擇所述虛擬BIOS。
11.如權(quán)利要求9所述的方法,進(jìn)一步包括:如果從所述多個不同虛擬BIOS中選擇第一虛擬BIOS,則支持所述軟件堆棧的特征,而如果從所述多個不同虛擬BIOS中選擇第二虛擬BIOS,則不支持所述軟件堆棧的特征。
12.如權(quán)利要求9所述的方法,進(jìn)一步包括從服務(wù)器請求所選擇的虛擬BIOS。
13.一種計(jì)算機(jī)可讀介質(zhì),包括如果被運(yùn)行則使控制器執(zhí)行如下動作的代碼: 接收關(guān)于軟件堆棧的信息; 基于所接收的信息從多個不同虛擬BIOS中選擇虛擬BIOS ;以及 管理包括所述軟件堆棧和所述虛擬BIOS的虛擬機(jī)。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包括如果被運(yùn)行則使處理器從服務(wù)器請求所選擇的虛擬BIOS的代碼。
15.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包括如果被運(yùn)行則使處理器執(zhí)行如下動作的代碼: 如果從所述多個不同虛擬BIOS中選擇第一虛擬BIOS,則提供由所述軟件堆棧支持的特征,而如果從所述多個不同虛擬BIOS中選擇第二虛擬BIOS,則不提供所述特征。
【文檔編號】G06F9/44GK103493012SQ201180070311
【公開日】2014年1月1日 申請日期:2011年4月21日 優(yōu)先權(quán)日:2011年4月21日
【發(fā)明者】詹姆斯·M·曼 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)