本申請(qǐng)總體上涉及改進(jìn)的數(shù)據(jù)處理裝置和方法,并且更具體地涉及用于提供用于實(shí)現(xiàn)自舉重定向操作的模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境的機(jī)制。
背景技術(shù):計(jì)算設(shè)備通常作為引導(dǎo)操作的一部分加載基本輸入/輸出系統(tǒng)(BIOS)代碼以及用于在計(jì)算設(shè)備上執(zhí)行的隨后的應(yīng)用代碼,該基本輸入/輸出系統(tǒng)(BIOS)代碼用于配置計(jì)算設(shè)備以加載操作系統(tǒng)。當(dāng)計(jì)算設(shè)備第一次啟動(dòng)時(shí),BIOS軟件的第一工作是通電自檢,這初始化并且識(shí)別諸如CPU、RAM、視頻顯示卡、鍵盤和鼠標(biāo)、硬盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器和其他硬件的系統(tǒng)設(shè)備。BIOS然后定位在諸如硬盤或CD/DVD的外圍設(shè)備(被指定為“引導(dǎo)設(shè)備”)上擁有的引導(dǎo)加載器軟件,并且加載和執(zhí)行該軟件,由其控制計(jì)算設(shè)備。這處理被稱為引導(dǎo),這是自舉的簡稱。BIOS軟件通常被存儲(chǔ)于在計(jì)算設(shè)備的母板上的諸如只讀存儲(chǔ)器(ROM)芯片等的非易失性存儲(chǔ)器芯片上。它被特殊地設(shè)計(jì)來與計(jì)算機(jī)的每個(gè)特定模式一起工作,與構(gòu)成系統(tǒng)的互補(bǔ)芯片集的各種設(shè)備以接口連接。BIOS具有用戶界面(UI),用戶界面通常為通過當(dāng)計(jì)算設(shè)備通電時(shí)按壓在鍵盤上的特定按鍵而訪問的菜單系統(tǒng)。在BIOSUI中,用戶可以配置硬件,設(shè)置系統(tǒng)時(shí)鐘,啟用或禁用系統(tǒng)組件,選擇哪些設(shè)備合適作為潛在的引導(dǎo)設(shè)備并且設(shè)置各種密碼提示等。BIOS提供了用于操作和控制諸如鍵盤的外圍設(shè)備和文本顯示功能等的小的基本輸入/輸出功能庫,并且這些軟件庫功能能夠被外部軟件調(diào)用。BIOS的角色已經(jīng)隨著時(shí)間改變。在現(xiàn)代的計(jì)算設(shè)備中,BIOS正在被更復(fù)雜的統(tǒng)一可擴(kuò)展固件接口(UEFI)替代。UEFI是限定在操作系統(tǒng)和平臺(tái)固件之間的軟件接口的規(guī)范。UEFI是對(duì)于易受引導(dǎo)套件惡意軟件的攻擊的較舊的BIOS固件接口的更安全的替代。UEFI可以用在商業(yè)計(jì)算機(jī)中以允許計(jì)算機(jī)的遠(yuǎn)程診斷和維修,即使操作系統(tǒng)將不加載。
技術(shù)實(shí)現(xiàn)要素:在一種說明性實(shí)施例中,提供了一種在裸機(jī)計(jì)算設(shè)備中的用于執(zhí)行基于網(wǎng)絡(luò)的引導(dǎo)操作的方法,所述基于網(wǎng)絡(luò)的引導(dǎo)操作用于引導(dǎo)所述裸機(jī)計(jì)算設(shè)備。所述方法包括:響應(yīng)于將所述裸機(jī)計(jì)算設(shè)備通電,執(zhí)行固件,所述固件從虛擬介質(zhì)映像執(zhí)行根,所述虛擬介質(zhì)映像被動(dòng)態(tài)地加載到所述裸機(jī)計(jì)算設(shè)備,并且能夠被所述裸機(jī)計(jì)算設(shè)備獲得。所述裸機(jī)計(jì)算設(shè)備的配置信息指示正在從本地介質(zhì)引導(dǎo)所述裸機(jī)計(jì)算設(shè)備或等同內(nèi)容。所述方法進(jìn)一步包括:所述根來通過修改所述裸機(jī)計(jì)算設(shè)備的所述配置信息以指示正在從網(wǎng)絡(luò)設(shè)備引導(dǎo)所述裸機(jī)計(jì)算設(shè)備來在所述裸機(jī)計(jì)算設(shè)備上配置網(wǎng)絡(luò)引導(dǎo)程序以利用網(wǎng)絡(luò)連接。所述方法也包括:使用在所述裸機(jī)計(jì)算設(shè)備上的所述網(wǎng)絡(luò)引導(dǎo)程序來從位于遠(yuǎn)處的引導(dǎo)服務(wù)器獲得微控制程序。而且,所述方法包括:在所述裸機(jī)計(jì)算設(shè)備上執(zhí)行所述微控制程序以完成所述裸機(jī)計(jì)算設(shè)備的所述引導(dǎo)。在其他說明性實(shí)施例中,提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括具有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用或可讀介質(zhì)。所述計(jì)算機(jī)可讀程序當(dāng)在計(jì)算設(shè)備上被執(zhí)行時(shí)使得所述計(jì)算設(shè)備執(zhí)行相對(duì)于所述方法說明性實(shí)施例上述的各個(gè)所述操作及其組合。在另一個(gè)說明性實(shí)施例中,提供了一種系統(tǒng)/裝置。所述系統(tǒng)/裝置可以包括一個(gè)或多個(gè)處理器和耦合到所述一個(gè)或多個(gè)處理器的存儲(chǔ)器。所述存儲(chǔ)器可以包括指令,所述指令當(dāng)被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得所述一個(gè)或多個(gè)處理器執(zhí)行相對(duì)于所述方法說明性實(shí)施例上述的各個(gè)所述操作及其組合。在本發(fā)明的示例實(shí)施例的下面的詳細(xì)說明中將描述本發(fā)明的這些和其他特征和優(yōu)點(diǎn),并且根據(jù)本發(fā)明的示例實(shí)施例的下面的詳細(xì)說明,本發(fā)明的這些和其他特征和優(yōu)點(diǎn)將對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員變得清楚。附圖說明通過當(dāng)與附圖相結(jié)合地閱讀時(shí)參考下面的說明性實(shí)施例的詳細(xì)說明,將最佳地理解本發(fā)明及其優(yōu)選使用模式及其另外的目的和優(yōu)點(diǎn),在附圖中:圖1是其中可以實(shí)現(xiàn)說明性實(shí)施例的各方面的分布數(shù)據(jù)處理系統(tǒng)的示例圖;圖2是其中可以實(shí)現(xiàn)說明性實(shí)施例的各方面的計(jì)算設(shè)備的示例圖;圖3是圖示根據(jù)一個(gè)說明性實(shí)施例的、用于裸機(jī)計(jì)算設(shè)備的遠(yuǎn)程引導(dǎo)的系統(tǒng)的主要操作元件的框圖;以及圖4是概述根據(jù)一個(gè)說明性實(shí)施例的、用于從網(wǎng)絡(luò)引導(dǎo)服務(wù)器引導(dǎo)裸機(jī)計(jì)算設(shè)備的示例操作的流程圖。具體實(shí)施方式說明性實(shí)施例提供了用于提供模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境的機(jī)制,該模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境用于實(shí)現(xiàn)自舉重定向操作。更具體地,說明性實(shí)施例提供了用于通過下述方式來配置裸機(jī)服務(wù)器的機(jī)制:提供用于執(zhí)行自舉重定向操作的模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境,該操作允許從諸如Linux內(nèi)核等的位于遠(yuǎn)處的微控制程序(MCP)引導(dǎo)這樣的裸機(jī)服務(wù)器,這繼而可以用于遠(yuǎn)程加載整個(gè)操作系統(tǒng)和/或其他自舉軟件。在一種特定實(shí)現(xiàn)方式中,本發(fā)明的機(jī)制提供了一種UEFI自舉重定向機(jī)制,該UEFI自舉重定向機(jī)制從本地介質(zhì)或等同物引導(dǎo),但是創(chuàng)建模擬的網(wǎng)絡(luò)引導(dǎo)環(huán)境,由此允許下游網(wǎng)絡(luò)引導(dǎo)程序適當(dāng)?shù)剡\(yùn)行。在本上下文中的術(shù)語“裸機(jī)”指計(jì)算設(shè)備,該計(jì)算設(shè)備沒有用于從本地存儲(chǔ)設(shè)備引導(dǎo)的本地駐留的微控制程序(MCP)、操作系統(tǒng)或管理程序,或者如果本地存在它,則其不可用于在自舉(即,引導(dǎo)或啟動(dòng))操作期間的帶內(nèi)管理操作。術(shù)語“帶內(nèi)”指示當(dāng)在計(jì)算設(shè)備的主處理器上的適當(dāng)環(huán)境中運(yùn)行時(shí)執(zhí)行的行為。術(shù)語“帶外”指示由協(xié)處理器、服務(wù)處理器或其他“輔助”處理器執(zhí)行的行為。因?yàn)槁銠C(jī)計(jì)算設(shè)備沒有其本身的本地駐留的微控制程序(MCP)或操作系統(tǒng),所以它必須從諸如軟盤、CD-ROM、DVD或帶存儲(chǔ)器等的外部設(shè)備獲得配置計(jì)算設(shè)備所需的軟件,或者通過通信連接從遠(yuǎn)程位置(例如,通過網(wǎng)絡(luò)連接從服務(wù)器)獲得軟件。然而,為了通過網(wǎng)絡(luò)連接獲得軟件,裸機(jī)計(jì)算設(shè)備必須能夠產(chǎn)生帶內(nèi)環(huán)境,該帶內(nèi)環(huán)境允許使得網(wǎng)絡(luò)連接成為可能。然而,用于從位于遠(yuǎn)處的網(wǎng)絡(luò)設(shè)備引導(dǎo)的已知機(jī)制要求用于實(shí)現(xiàn)帶內(nèi)環(huán)境的軟件本身通過網(wǎng)絡(luò)被加載,以便該軟件了解要利用的在裸機(jī)計(jì)算設(shè)備上的網(wǎng)絡(luò)端口的身份以及位于遠(yuǎn)處的引導(dǎo)軟件的來源的位置,該機(jī)制即網(wǎng)絡(luò)引導(dǎo)程序(NBP),諸如iPXE、可擴(kuò)展固件接口(EFI)Linux載入器(“elilo”)等。這表示存在沒有操作系統(tǒng)的裸機(jī)計(jì)算設(shè)備時(shí)的“雙環(huán)”困境,該操作系統(tǒng)向NBP通知可以用于訪問遠(yuǎn)程引導(dǎo)軟件的網(wǎng)絡(luò)端口,例如,為了elilo能夠訪問遠(yuǎn)程服務(wù)器以下載引導(dǎo)軟件,elilo必須了解要使用的網(wǎng)絡(luò)端口,并且僅在如果elilo當(dāng)它本身被下載以在計(jì)算設(shè)備上執(zhí)行時(shí)使用那個(gè)網(wǎng)絡(luò)端口的情況下了解那個(gè)網(wǎng)絡(luò)端口。另外,已知的網(wǎng)絡(luò)引導(dǎo)程序(NBP)要求動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù)器、要設(shè)置的各種DHCP選項(xiàng)和普通文件傳送協(xié)議(TFTP)服務(wù)器,以便能夠便利計(jì)算設(shè)備的遠(yuǎn)程網(wǎng)絡(luò)引導(dǎo),該已知的網(wǎng)絡(luò)引導(dǎo)程序(NBP)使用已知的機(jī)制,諸如引導(dǎo)前執(zhí)行環(huán)境(PXE)。這樣的機(jī)制要求動(dòng)態(tài)的IP地址支持,其消除了靜態(tài)IP地址計(jì)算設(shè)備利用這些機(jī)制的能力。鑒于上面的情況,由說明性實(shí)施例處理的主要問題之一是如何通過裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)端口的一個(gè)或多個(gè)來可靠和迅速地加載微控制程序(MCP),諸如操作系統(tǒng)內(nèi)核等。說明性實(shí)施例提供了用于模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境的機(jī)制,該環(huán)境使得NBP基于其配置信息相信通過網(wǎng)絡(luò)連接從位于遠(yuǎn)處的計(jì)算設(shè)備加載NBP。在一個(gè)說明性實(shí)施例中,裸機(jī)計(jì)算設(shè)備被配置來具有根(stub)、用于配置根的對(duì)應(yīng)的最小足跡配置文件和諸如基本輸入/輸出系統(tǒng)(BIOS)或統(tǒng)一可擴(kuò)展固件接口(UEFI)的固件引導(dǎo)代碼。根是代替一些編程功能的很小部分的代碼。當(dāng)裸機(jī)計(jì)算設(shè)備通電時(shí),從裸機(jī)計(jì)算設(shè)備的固件執(zhí)行UEFI代碼。UEFI代碼被配置來將根與最小足跡配置文件以及其他網(wǎng)絡(luò)配置信息一起加載到存儲(chǔ)器內(nèi),該最小足跡配置文件將根配置有通過其進(jìn)行通信的網(wǎng)絡(luò)端口,該其他網(wǎng)絡(luò)配置信息配置根以利用網(wǎng)絡(luò)接口并且訪問位于遠(yuǎn)處的用于引導(dǎo)裸機(jī)計(jì)算設(shè)備的自舉程序。該根和配置文件可以是在裸機(jī)計(jì)算設(shè)備的存儲(chǔ)器或其他存儲(chǔ)中的本地介質(zhì)映像(image)的一部分,該本地介質(zhì)映像例如是軟盤映像、虛擬軟盤映像或硬盤映像等。本地介質(zhì)映像或等同物可以進(jìn)一步存儲(chǔ)第一NBP,裸機(jī)計(jì)算設(shè)備可以使用第一NBP來經(jīng)由網(wǎng)絡(luò)通信連接訪問位于遠(yuǎn)處的自舉軟件。替代地,可以經(jīng)由由根使用其配置文件配置的網(wǎng)絡(luò)連接從位于遠(yuǎn)處的服務(wù)器遠(yuǎn)程獲得第一NBP。在一個(gè)說明性實(shí)施例中,第一NBP可以例如是iPXE應(yīng)用。可以通過根來配置第一NBP以指定要用于網(wǎng)絡(luò)通信的網(wǎng)絡(luò)端口、諸如動(dòng)態(tài)或靜態(tài)地址的要使用的尋址模式的類型、網(wǎng)絡(luò)掩碼信息、可選網(wǎng)關(guān)地址信息等。第一NBP可以進(jìn)一步被配置有一個(gè)或多個(gè)第二和隨后的NBP的標(biāo)識(shí)和這些一個(gè)或多個(gè)第二和隨后的NBP的它們的網(wǎng)絡(luò)位置。這些第二和隨后的NBP可以被從遠(yuǎn)程服務(wù)器加載到本地存儲(chǔ)器內(nèi),并且被執(zhí)行以便于從遠(yuǎn)程引導(dǎo)服務(wù)器下載和執(zhí)行另外的引導(dǎo)軟件。本質(zhì)上,根允許在裸機(jī)計(jì)算設(shè)備上創(chuàng)建網(wǎng)絡(luò)引導(dǎo)環(huán)境,以使得當(dāng)事實(shí)上使用本地虛擬介質(zhì)映像啟動(dòng)引導(dǎo)處理時(shí)看起來好像裸機(jī)計(jì)算設(shè)備已經(jīng)啟動(dòng)了基于網(wǎng)絡(luò)的引導(dǎo)處理,諸如符合PXE處理的那些。根替代指示本地啟動(dòng)的引導(dǎo)處理的裸機(jī)計(jì)算設(shè)備的配置,以使得裸機(jī)計(jì)算設(shè)備當(dāng)事實(shí)上從本地虛擬介質(zhì)映像引導(dǎo)它時(shí)指示從網(wǎng)絡(luò)引導(dǎo)服務(wù)器引導(dǎo)它。其后,可以使用網(wǎng)絡(luò)引導(dǎo)程序來利用裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)已知配置來訪問位于遠(yuǎn)處的微控制程序和其他自舉軟件。結(jié)果,可以執(zhí)行基于網(wǎng)絡(luò)的自舉操作以引導(dǎo)裸機(jī)計(jì)算設(shè)備。本領(lǐng)域內(nèi)的技術(shù)人員可以明白,本發(fā)明的方面可以被體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的方面可以采取整個(gè)硬件實(shí)施例、整個(gè)軟件實(shí)施例(包括固件、駐留軟件、微碼等)或組合軟件和硬件的實(shí)施例的形式,它們可以全部被一般在此稱為“電路”、“模塊”或“系統(tǒng)”。而且,本發(fā)明的方面可以采取以在其上包含計(jì)算機(jī)可用程序代碼的任何一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)體現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式??梢岳靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。該計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是例如但是不限于電子、磁、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或上述部分的任何適當(dāng)?shù)慕M合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的示例(非窮盡性列表)包括下面的部分:具有一條或多條導(dǎo)線的電連接、便攜計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPROM或快閃存儲(chǔ)器)、光纖、便攜光盤字匯度存儲(chǔ)器(CDROM)、光學(xué)存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備或上述部分的任何適當(dāng)?shù)慕M合。在本文的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以包含或存儲(chǔ)程序以由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其相結(jié)合地使用的任何有形介質(zhì)。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括例如在基帶中或作為載波的一部分的、其中包含計(jì)算機(jī)可讀程序代碼的傳播數(shù)據(jù)信號(hào)。這樣的傳播信號(hào)可以采取多種形式的任何一種,包括但是不限于電磁、光學(xué)或其任何適當(dāng)?shù)慕M合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是任何計(jì)算機(jī)可讀介質(zhì),該任何計(jì)算機(jī)可讀介質(zhì)不是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且傳輸、傳播或傳送程序以由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其相結(jié)合地使用可以使用任何適當(dāng)?shù)慕橘|(zhì)來發(fā)送在計(jì)算機(jī)可讀介質(zhì)上包含的計(jì)算機(jī)代碼,該適當(dāng)?shù)慕橘|(zhì)包括但是不限于無線、有線、光纖線纜、射頻(RF)等或其任何適當(dāng)?shù)慕M合。可以以一種或多種編程語言的任何組合來便攜用于執(zhí)行用于本發(fā)明的方面的操作的計(jì)算機(jī)程序代碼,該一種或多種編程語言包括:面向?qū)ο缶幊陶Z言,諸如JavaTM、SmalltalkTM或C++等;以及,傳統(tǒng)過程編程語言,諸如“C”編程語言或類似的編程語言。該程序代碼可以完全在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上、作為單獨(dú)的軟件包、部分地在用戶的計(jì)算機(jī)上并且部分地在遠(yuǎn)程計(jì)算機(jī)上或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情況下,遠(yuǎn)程計(jì)算機(jī)可以通過包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)的任何類型的網(wǎng)絡(luò)連接到用戶的計(jì)算機(jī),或者,可以創(chuàng)建到外部計(jì)算機(jī)的連接(例如,使用因特網(wǎng)服務(wù)提供商通過因特網(wǎng))。下面參考根據(jù)本發(fā)明的說明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖圖示和/或框圖來描述本發(fā)明的方面??梢悦靼?,可以通過計(jì)算機(jī)程序指令來實(shí)現(xiàn)流程圖圖示和/或框圖的每一個(gè)方框和在流程圖圖示和/或框圖中的方框的組合。這些計(jì)算機(jī)程序指令可以被提供到通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生機(jī)器,使得經(jīng)由計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)方框中指定的功能/行為的手段。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,該計(jì)算機(jī)可讀介質(zhì)可以引導(dǎo)計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備來以特定方式作為,使得在計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)的指令產(chǎn)生制造品,該制造品包括實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)方框中指定的功能/行為的指令。計(jì)算機(jī)程序指令也可以被加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上,以使得一系列操作步驟在該計(jì)算機(jī)、其他可編程裝置或其他設(shè)備上執(zhí)行,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得該指令當(dāng)在計(jì)算機(jī)或其他可編程裝置上執(zhí)行時(shí)提供用于實(shí)現(xiàn)在流程圖或框圖的一個(gè)或多個(gè)方框中指定的功能/行為的處理。在附圖中的流程圖和框圖圖示了根據(jù)本發(fā)明的各個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)方式的架構(gòu)、功能和操作。在這一點(diǎn)上,在流程圖或框圖中的每一個(gè)塊可以表示代碼的模塊、分段或部分,該代碼的模塊、分段或部分包括用于實(shí)現(xiàn)指定的邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令。也應(yīng)當(dāng)注意,在一些替代實(shí)現(xiàn)方式中,在方框中表示的功能可以不以在附圖中所述的順序出現(xiàn)。例如,根據(jù)所涉及的功能,連續(xù)示出的兩個(gè)方框可以事實(shí)上大體同時(shí)地被執(zhí)行,或者,可以以逆序來執(zhí)行該方框。也可以注意到,可以通過專用基于硬件的系統(tǒng)來實(shí)現(xiàn)框圖和/或流程圖圖示的每一個(gè)方框和在框圖和/或流程圖圖示中的方框的組合,該專用基于硬件的系統(tǒng)執(zhí)行專用硬件和計(jì)算機(jī)指令的指定功能或行為或組合。因此,可以在許多不同類型的數(shù)據(jù)處理環(huán)境中使用說明性實(shí)施例。實(shí)質(zhì)上,使用諸如超管理器或操作系統(tǒng)等的控制程序的裸機(jī)引導(dǎo)的任何計(jì)算機(jī)系統(tǒng)可以利用在此所述的說明性實(shí)施例的機(jī)制。使用本地虛擬介質(zhì)映像來執(zhí)行根據(jù)說明性實(shí)施例的裸機(jī)計(jì)引導(dǎo)(或自舉)操作,該本地虛擬介質(zhì)映像模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境,該環(huán)境繼而允許裸機(jī)計(jì)算系統(tǒng)/設(shè)備使用位于遠(yuǎn)處的微控制抽象層和在引導(dǎo)服務(wù)器或其他位于遠(yuǎn)處的計(jì)算設(shè)備上的其他自舉應(yīng)用來完成其自舉操作。在此使用的術(shù)語“遠(yuǎn)程”或“位于遠(yuǎn)處”指的是僅通過一個(gè)或多個(gè)數(shù)據(jù)網(wǎng)絡(luò)而不是通過直接本地連接可訪問的計(jì)算設(shè)備。圖1描述了其中可以實(shí)現(xiàn)說明性實(shí)施例的方面的示例分布式數(shù)據(jù)處理系統(tǒng)的圖示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其中可以實(shí)現(xiàn)說明性實(shí)施例的方面的計(jì)算機(jī)的網(wǎng)絡(luò)。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個(gè)網(wǎng)絡(luò)102,該至少一個(gè)網(wǎng)絡(luò)102是用于在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括諸如導(dǎo)線、無線通信鏈路或光纖線纜的連接。在所描述的示例中,服務(wù)器104和服務(wù)器106與存儲(chǔ)單元108一起連接到網(wǎng)絡(luò)102。另外,客戶機(jī)110、112和114也連接到網(wǎng)絡(luò)102。這些客戶機(jī)110、112和114可以例如是個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)等。在所描述的示例中,服務(wù)器104向客戶機(jī)110、112和114提供數(shù)據(jù),諸如引導(dǎo)文件、操作系統(tǒng)映像和應(yīng)用。客戶機(jī)110、112和114在所描述的示例中是相對(duì)于服務(wù)器104的客戶機(jī),并且可以是根據(jù)說明性實(shí)施例的裸機(jī)計(jì)算設(shè)備。如此一來,客戶機(jī)110、112和114可以使用本地虛擬介質(zhì)映像來本地啟動(dòng)自舉操作,并且使用經(jīng)由網(wǎng)絡(luò)102從服務(wù)器104、106的一個(gè)或多個(gè)獲得的微控制程序和其他自舉應(yīng)用來完成自舉操作。服務(wù)器104、106或客戶機(jī)110、112、114的一個(gè)或多個(gè)可以進(jìn)一步提供管理應(yīng)用,用于管理對(duì)于諸如客戶機(jī)110、112和114的一個(gè)或多個(gè)的一個(gè)或多個(gè)裸機(jī)計(jì)算設(shè)備執(zhí)行的自舉操作。分布式數(shù)據(jù)處理系統(tǒng)100可以包括另外的服務(wù)器、客戶機(jī)未示出的其他設(shè)備。在所描述的示例中,分布式數(shù)據(jù)處理系統(tǒng)100是具有網(wǎng)絡(luò)102的因特網(wǎng),用于表示使用協(xié)議的傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)套組來保持進(jìn)行通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的世界集合。在因特網(wǎng)的中心是在主節(jié)點(diǎn)或主計(jì)算機(jī)之間的高速數(shù)據(jù)通信線的主干,由路由數(shù)據(jù)和消息的成千上萬的商業(yè)、政府、教育或其他計(jì)算機(jī)系統(tǒng)構(gòu)成。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100也可以被實(shí)現(xiàn)來包括多個(gè)不同類型的網(wǎng)絡(luò),諸如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)等。如上所述,圖1意欲作為示例,而不是作為用于本發(fā)明的不同實(shí)施例的架構(gòu)限制,并且因此,在圖1中所示的特定元件不應(yīng)當(dāng)被看作關(guān)于其中可以實(shí)現(xiàn)本發(fā)明的說明性實(shí)施例的環(huán)境的限制。圖2是其中可以實(shí)現(xiàn)說明性實(shí)施例的方面的示例數(shù)據(jù)處理系統(tǒng)的框圖。在說明性實(shí)施例的一個(gè)方面中,數(shù)據(jù)處理系統(tǒng)200是裸機(jī)計(jì)算系統(tǒng)性/設(shè)備的一個(gè)示例,諸如在圖1中的客戶機(jī)110,其中,可以執(zhí)行計(jì)算機(jī)可用代碼或指令,該計(jì)算機(jī)可用代碼或指令實(shí)現(xiàn)在以下相對(duì)于裸機(jī)計(jì)算系統(tǒng)/設(shè)備操作描述的處理。在說明性實(shí)施例的另一個(gè)方面中,數(shù)據(jù)處理系統(tǒng)200可以進(jìn)一步是服務(wù)器計(jì)算設(shè)備,諸如在圖1中的服務(wù)器104或106,其提供用于控制裸機(jī)計(jì)算系統(tǒng)/設(shè)備的基于網(wǎng)絡(luò)的自舉操作的管理應(yīng)用。而且,該數(shù)據(jù)處理系統(tǒng)可以是服務(wù)器計(jì)算設(shè)備,諸如在圖1中的服務(wù)器104或106,其經(jīng)由網(wǎng)絡(luò)等向裸機(jī)計(jì)算系統(tǒng)/設(shè)備提供微控制程序和其他自舉應(yīng)用。在所描述的示例中,數(shù)據(jù)處理系統(tǒng)200使用包括北橋和存儲(chǔ)器控制器集線器(NB/MCH)202與南橋和輸入/輸出(I/O)控制器集線器(SB/ICH)204的集線器架構(gòu)。處理單元206、主存儲(chǔ)器208和圖形處理器210連接到NB/MCH202。圖形處理器210可以通過加速圖形端口(AGP)連接到NB/MCH202。在所描述的示例中,局域網(wǎng)(LAN)適配器212連接到SB/ICH204。音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM)224、硬盤驅(qū)動(dòng)器(HDD)226、CD-ROM驅(qū)動(dòng)器230、通用串行總線(USB)端口和其他通信端口232與PCI/PCIe設(shè)備234通過總線238和總線240連接到SB/ICH204。PCI/PCIe設(shè)備可以包括例如以太網(wǎng)適配器、插入卡和用于筆記本計(jì)算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe不是這樣。ROM224可以例如是快閃基本輸入/輸出系統(tǒng)(BIOS)。HDD226和CD-ROM驅(qū)動(dòng)器230通過總線240連接到SB/ICH204。HDD226和CD-ROM驅(qū)動(dòng)器230可以使用例如集成驅(qū)動(dòng)電子(IDE)或串行高級(jí)技術(shù)附接(SATA)接口。超I/O(SIO)設(shè)備236可以連接到SB/ICH204。在諸如在圖1中的服務(wù)器104或106的服務(wù)器計(jì)算系統(tǒng)的情況下,操作系統(tǒng)可以在處理單元206上運(yùn)行。操作系統(tǒng)協(xié)調(diào)和控制在圖2的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各種部件。作為客戶機(jī),操作系統(tǒng)可以是市場(chǎng)上銷售的操作系統(tǒng),諸如。諸如JavaTM編程系統(tǒng)的面向?qū)ο蟮木幊滔到y(tǒng)可以與操作系統(tǒng)相結(jié)合地運(yùn)行,并且從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的JavaTM程序或應(yīng)用提供對(duì)于操作系統(tǒng)的調(diào)用。作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以例如是運(yùn)行高級(jí)交換執(zhí)行()操作系統(tǒng)或操作系統(tǒng)的eServerTM系統(tǒng)計(jì)算機(jī)系統(tǒng)。數(shù)據(jù)處理系統(tǒng)200可以是對(duì)稱多處理器(SMP)系統(tǒng),其包括在處理單元206中的多個(gè)處理器。替代地,可以使用單個(gè)處理器系統(tǒng)。用于操作系統(tǒng)的指令、面向?qū)ο缶幊滔到y(tǒng)和應(yīng)用或程序位于諸如HDD裸機(jī)計(jì)算系統(tǒng)/設(shè)備226的存儲(chǔ)設(shè)備上,并且可以被處理單元206加載到主存儲(chǔ)器208內(nèi)以執(zhí)行。處理單元206使用計(jì)算機(jī)可用程序代碼來執(zhí)行用于本發(fā)明的說明性實(shí)施例的處理,計(jì)算機(jī)可用程序代碼可以例如位于諸如主存儲(chǔ)器208、ROM224的存儲(chǔ)器中或一個(gè)或多個(gè)外圍設(shè)備226和230中。諸如在圖2中所示的總線238或總線240的總線系統(tǒng)可以由一條或多條總線構(gòu)成。當(dāng)然,可以使用提供在附接到通信組織或架構(gòu)的不同部件或設(shè)備之間的數(shù)據(jù)的傳送的任何類型的組織化或架構(gòu)來實(shí)現(xiàn)該總線系統(tǒng)。諸如圖2的調(diào)制解調(diào)器222或網(wǎng)絡(luò)適配器212的通信單元可以包括用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)設(shè)備。存儲(chǔ)器可以例如是主存儲(chǔ)器208、ROM224或諸如在圖2中的NB/MCH202中找到的高速緩存。本領(lǐng)域內(nèi)的普通技術(shù)人員可以明白,在圖1和2中的硬件可以根據(jù)實(shí)現(xiàn)方式不同。補(bǔ)充或替代在圖1和2中描述的硬件,可以使用其他內(nèi)部硬件或外圍設(shè)備,諸如快閃存儲(chǔ)器、等同的非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)器等。而且,在不偏離本發(fā)明的精神和范圍的情況下,可以將說明性實(shí)施例的處理應(yīng)用到多處理器數(shù)據(jù)處理系統(tǒng),而不是前述的SMP系統(tǒng)。而且,數(shù)據(jù)處理系統(tǒng)200可以采用多個(gè)不同數(shù)據(jù)處理系統(tǒng)的任何一個(gè)的形式,該多個(gè)不同數(shù)據(jù)處理系統(tǒng)包括客戶機(jī)計(jì)算設(shè)備、服務(wù)器計(jì)算設(shè)備、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、電話或其他通信設(shè)備或者個(gè)人數(shù)字助理(PDA)等。在一些說明性實(shí)施例中,數(shù)據(jù)處理系統(tǒng)200可以例如是便攜計(jì)算設(shè)備,該便攜計(jì)算設(shè)備被使用快閃存儲(chǔ)器配置以提供用于存儲(chǔ)操作系統(tǒng)文件和/或用戶產(chǎn)生數(shù)據(jù)的非易失性存儲(chǔ)器。實(shí)質(zhì)上,數(shù)據(jù)處理系統(tǒng)200可以是任何已知或以后開發(fā)的數(shù)據(jù)處理系統(tǒng),而沒有架構(gòu)限制。再一次參考圖1,客戶機(jī)110、112和114的一個(gè)或多個(gè)可以是裸機(jī)計(jì)算設(shè)備,該裸機(jī)計(jì)算設(shè)備不必然具有其本身的本地超管理器或操作系統(tǒng)等。利用說明性實(shí)施例的機(jī)制,客戶機(jī)110、112和114可以具有本地虛擬介質(zhì)映像,從該本地虛擬介質(zhì)映像,使用其本地存儲(chǔ)的配置信息和網(wǎng)絡(luò)引導(dǎo)程序(NBP)來執(zhí)行根,以創(chuàng)建網(wǎng)絡(luò)引導(dǎo)環(huán)境。使用該網(wǎng)絡(luò)引導(dǎo)環(huán)境,根使得與諸如服務(wù)器104或106的遠(yuǎn)程服務(wù)器進(jìn)行通信,以獲得微控制程序(MCP),該MCP能夠用于使用在位于遠(yuǎn)處的服務(wù)器104或106上的位于遠(yuǎn)處的自舉應(yīng)用來繼續(xù)自舉操作。根據(jù)說明性實(shí)施例,服務(wù)器104或106之一可以提供管理應(yīng)用,該管理應(yīng)用控制或安排用于一個(gè)或多個(gè)裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)自舉處理。應(yīng)當(dāng)明白,雖然相對(duì)于網(wǎng)絡(luò)自舉作為客戶機(jī)計(jì)算設(shè)備的裸機(jī)計(jì)算設(shè)備而上述了說明性實(shí)施例,但是說明性實(shí)施例不限于此。而是,可以使用說明性實(shí)施例的機(jī)制來網(wǎng)絡(luò)自舉任何裸機(jī)計(jì)算設(shè)備。例如,在一個(gè)說明性實(shí)施例中,裸機(jī)計(jì)算設(shè)備可以是具有多個(gè)刀片服務(wù)器的刀片服務(wù)器系統(tǒng)。每一個(gè)刀片服務(wù)器可以對(duì)應(yīng)于不同的裸機(jī)計(jì)算設(shè)備,或者,刀片服務(wù)器系統(tǒng)整體可以被控制裸機(jī)計(jì)算設(shè)備以用于說明性實(shí)施例的操作的目的。可以使用說明性實(shí)施例的機(jī)制來引導(dǎo)和配置任何裸機(jī)計(jì)算設(shè)備。為了更好地描述根據(jù)說明性實(shí)施例的機(jī)制及其操作,以下提供圖3,其圖示了根據(jù)說明性實(shí)施例的、用于執(zhí)行裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)自舉操作的主要操作元件。如圖3中所示,裸機(jī)計(jì)算設(shè)備包括固件305和減小在兩個(gè)面部之間的區(qū)別水平310,經(jīng)由本地、遠(yuǎn)處加載的或附接的存儲(chǔ)器可訪問虛擬介質(zhì)映像310,并且虛擬介質(zhì)映像310可以被加載到裸機(jī)計(jì)算設(shè)備300的存儲(chǔ)器308內(nèi)。裸機(jī)計(jì)算設(shè)備300在被配置根據(jù)說明性實(shí)施例的模擬網(wǎng)絡(luò)環(huán)境后經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)340與具有用于自舉操作的控制程序文件的位于遠(yuǎn)處的引導(dǎo)服務(wù)器320或文件服務(wù)器進(jìn)行通信,以從引導(dǎo)服務(wù)器320獲得微控制程序322、引導(dǎo)文件324和一個(gè)或多個(gè)網(wǎng)絡(luò)引導(dǎo)程序(NBP)326。可以提供管理服務(wù)器330,其提供安排裸機(jī)計(jì)算設(shè)備300的網(wǎng)絡(luò)引導(dǎo)的管理應(yīng)用或設(shè)施332。初始,除了提供用于促進(jìn)與裸機(jī)計(jì)算設(shè)備300的硬件的通信的基本的一組輸入/輸出軟件的固件305之外,裸機(jī)計(jì)算設(shè)備300沒有在裸機(jī)計(jì)算設(shè)備300上駐留的軟件機(jī)制,并且必須被配置在裸機(jī)計(jì)算設(shè)備100的通電時(shí)執(zhí)行的軟件。這是管理應(yīng)用332的目的。應(yīng)當(dāng)明白,雖然所說明的示例圖示了管理應(yīng)用332駐留在獨(dú)立的服務(wù)器計(jì)算設(shè)備,即管理服務(wù)器330上,但是管理應(yīng)用332可以被設(shè)置在不同的計(jì)算設(shè)備上。例如,在一個(gè)說明性實(shí)施例中,管理應(yīng)用332可以被與裸機(jī)計(jì)算設(shè)備300相關(guān)聯(lián)的服務(wù)處理器(未示出)執(zhí)行。例如,在刀片服務(wù)器系統(tǒng)中,裸機(jī)計(jì)算設(shè)備300可以是在刀片服務(wù)器系統(tǒng)中的刀片之一,而服務(wù)器處理器可以是在刀片服務(wù)器系統(tǒng)內(nèi)的獨(dú)立處理器,該獨(dú)立處理器運(yùn)行來管理和配置在刀片服務(wù)器系統(tǒng)中的刀片。管理應(yīng)用332可以初始被執(zhí)行以用于下述目的:執(zhí)行帶外(OOB)查詢以確定一個(gè)或多個(gè)裸機(jī)計(jì)算設(shè)備300的存在以及在裸機(jī)計(jì)算設(shè)備300上使用來經(jīng)由網(wǎng)絡(luò)340執(zhí)行通信的網(wǎng)絡(luò)端口。管理應(yīng)用332可以例如經(jīng)由通過程序用戶界面(UI)與系統(tǒng)管理員的交互或通過例如與管理應(yīng)用332相關(guān)聯(lián)地存儲(chǔ)的規(guī)則或其他選擇標(biāo)準(zhǔn)來選擇裸機(jī)計(jì)算設(shè)備300和相關(guān)聯(lián)的網(wǎng)絡(luò)連接340。所存儲(chǔ)的規(guī)則或標(biāo)準(zhǔn)可以是由例如操作管理應(yīng)用332的系統(tǒng)管理員確定的默認(rèn)或特定選擇。管理應(yīng)用332進(jìn)一步使用引導(dǎo)列表配置裸機(jī)計(jì)算設(shè)備的固件305,引導(dǎo)列表指示從其初始引導(dǎo)裸機(jī)計(jì)算設(shè)備300的設(shè)備或一系列設(shè)備。根據(jù)說明性實(shí)施例的機(jī)制,管理應(yīng)用332配置在裸機(jī)計(jì)算設(shè)備300的固件305中的引導(dǎo)列表以將本地虛擬介質(zhì)映像310識(shí)別為用于裸機(jī)計(jì)算設(shè)備300的初始引導(dǎo)設(shè)備。固件305存儲(chǔ)當(dāng)將裸機(jī)計(jì)算設(shè)備300通電時(shí)執(zhí)行的初始代碼,諸如基本輸入/輸出系統(tǒng)(BIOS)或統(tǒng)一可擴(kuò)展固件接口(UEFI)等。在一個(gè)說明性實(shí)施例中,固件305是在向裸機(jī)計(jì)算設(shè)備內(nèi)置的快閃存儲(chǔ)器上存儲(chǔ)的UEFI。管理應(yīng)用332配置固件305的UEFI以從本地虛擬介質(zhì)映像310引導(dǎo),并且因此,當(dāng)裸機(jī)計(jì)算設(shè)備300被通電并且開始其自舉操作時(shí),裸機(jī)計(jì)算設(shè)備300被配置來了解它正在被本地引導(dǎo)。結(jié)果,在沒有通過說明性實(shí)施例的修改的情況下,裸機(jī)計(jì)算設(shè)備300不被配置來經(jīng)由基于網(wǎng)絡(luò)的引導(dǎo)服務(wù)器來完成其自舉操作。管理應(yīng)用332進(jìn)一步在裸機(jī)計(jì)算設(shè)備300上創(chuàng)建虛擬介質(zhì)映像310,裸機(jī)計(jì)算設(shè)備300從此可以開始其自舉操作。虛擬介質(zhì)映像310包括根312、配置文件314和第一網(wǎng)絡(luò)引導(dǎo)程序(NBP)316。虛擬介質(zhì)映像310是諸如軟盤、CD-ROM或DVD-ROM等的本地介質(zhì)的表示。虛擬介質(zhì)映像310模擬本地介質(zhì),可以從本地介質(zhì)引導(dǎo)裸機(jī)計(jì)算設(shè)備。根312是代替一些編程功能的代碼的很小部分。當(dāng)將裸機(jī)計(jì)算設(shè)備通電時(shí),執(zhí)行在固件305中的UEFI代碼。管理應(yīng)用332已經(jīng)配置UEFI代碼以將根312與最小足跡配置文件314一起加載到存儲(chǔ)器308內(nèi),該最小足跡配置文件314使用本地網(wǎng)絡(luò)接口卡(NIC)等的網(wǎng)絡(luò)端口——通過其來與網(wǎng)絡(luò)340進(jìn)行通信——以及其他網(wǎng)絡(luò)配置信息來配置根312,該其他網(wǎng)絡(luò)配置信息例如是用于要使用(用于靜態(tài)IP地址)的或要使用動(dòng)態(tài)地址機(jī)制(例如,DHCP等)的裸機(jī)計(jì)算設(shè)備的地址和/或引導(dǎo)服務(wù)器320的地址等。因此,通過配置根312以在由網(wǎng)絡(luò)端口和地址信息限定的網(wǎng)絡(luò)環(huán)境中運(yùn)行,裸機(jī)計(jì)算設(shè)備300能夠訪問網(wǎng)絡(luò)340。如圖3中所述,本地虛擬介質(zhì)映像310可以進(jìn)一步存儲(chǔ)第一NBP316,裸機(jī)計(jì)算設(shè)備可以使用該第一NBP316來經(jīng)由到網(wǎng)絡(luò)340的網(wǎng)絡(luò)通信連接訪問在引導(dǎo)服務(wù)器320上的位于遠(yuǎn)處的自舉軟件。替代地,可以經(jīng)由由根312使用其配置文件314配置的網(wǎng)絡(luò)連接從位于遠(yuǎn)處的服務(wù)器320遠(yuǎn)程獲得第一NBP316。在一個(gè)說明性實(shí)施例中,第一NBP316可以例如是iPXE應(yīng)用。第一NBP316可以被根312配置來指定要用于網(wǎng)絡(luò)通信的網(wǎng)絡(luò)端口、諸如動(dòng)態(tài)或靜態(tài)地址的要使用的編址模式的類型、網(wǎng)絡(luò)掩碼信息和/或選用的網(wǎng)關(guān)地址信息等。第一NBP316可以進(jìn)一步被配置一個(gè)或多個(gè)第二和隨后的NBP326的標(biāo)識(shí)符和這些一個(gè)或多個(gè)第二和隨后的NBP326例如在引導(dǎo)服務(wù)器320上的它們的網(wǎng)絡(luò)位置。這些第二和隨后的NBP326可以被從遠(yuǎn)程服務(wù)器加載到本地存儲(chǔ)器308內(nèi),并且被執(zhí)行以促進(jìn)從遠(yuǎn)程引導(dǎo)服務(wù)器320下載和執(zhí)行另外的引導(dǎo)軟件324。本質(zhì)上,根312允許在裸機(jī)計(jì)算設(shè)備300上創(chuàng)建網(wǎng)絡(luò)引導(dǎo)環(huán)境,以使得當(dāng)搜索使用本地虛擬介質(zhì)映像310啟動(dòng)引導(dǎo)處理時(shí)看起來好像裸機(jī)計(jì)算設(shè)備300已經(jīng)開始了基于網(wǎng)絡(luò)的引導(dǎo)。根312更換指示本地啟動(dòng)的引導(dǎo)處理的裸機(jī)計(jì)算設(shè)備300的配置,以使得當(dāng)事實(shí)上從本地虛擬介質(zhì)映像310引導(dǎo)裸機(jī)計(jì)算設(shè)備300時(shí)裸機(jī)計(jì)算設(shè)備300指示從網(wǎng)絡(luò)引導(dǎo)服務(wù)器320引導(dǎo)它。其后,網(wǎng)絡(luò)引導(dǎo)程序316或一系列網(wǎng)絡(luò)引導(dǎo)程序316、326可以用于利用裸機(jī)計(jì)算設(shè)備300的網(wǎng)絡(luò)已知配置來訪問諸如操作系統(tǒng)內(nèi)核等的位于遠(yuǎn)處的微控制程序(MCP)322和其他自舉軟件324。結(jié)果,可以執(zhí)行基于網(wǎng)絡(luò)的自舉操作以用于引導(dǎo)裸機(jī)計(jì)算設(shè)備300。例如,在一種說明性實(shí)現(xiàn)方式中,固件305(例如,UEFI)被配置來從本地虛擬介質(zhì)映像310加載根312,根312繼而讀取其配置文件314,通過管理應(yīng)用332創(chuàng)建和向本地虛擬介質(zhì)映像310寫入其配置文件314。虛擬介質(zhì)映像310進(jìn)一步包括被根312加載到存儲(chǔ)器308內(nèi)的第一NBP316,諸如iPXE。根312動(dòng)態(tài)地將諸如iPXE的第一NBP316打補(bǔ)丁,以修改其其命令或腳本的內(nèi)部順序,以包括用于訪問網(wǎng)絡(luò)端口和位于遠(yuǎn)處的引導(dǎo)服務(wù)器320的一系列命令,以從位于遠(yuǎn)處的引導(dǎo)服務(wù)器320下載MCP322、引導(dǎo)文件324和/或第二NBP326。該命令或腳本的內(nèi)部序列向諸如iPXE的第一NBP316通知要使用哪個(gè)網(wǎng)絡(luò)端口(例如通過MAC地址等的指定)、IP地址、網(wǎng)絡(luò)掩碼和用于靜態(tài)IP操作模式的選用的網(wǎng)關(guān)地址或在如果要使用DHCP模式的情況下的動(dòng)態(tài)IP地址模式的指示。第一NBP316的命令序列在被根312打補(bǔ)丁后可以進(jìn)一步包括要使用的諸如第二NBP326的一個(gè)或多個(gè)隨后的NBP和在何處和如何該一個(gè)或多個(gè)隨后的NBP326的指示。例如,第二NBP326可以是elilo.efi網(wǎng)絡(luò)引導(dǎo)程序,該elilo.efi網(wǎng)絡(luò)引導(dǎo)程序用于從引導(dǎo)服務(wù)器320加載MCP322和其他操作系統(tǒng)。例如,根312可以配置iPXE網(wǎng)絡(luò)引導(dǎo)程序以使用諸如ftp://192.168.70.5/elilo.efi的地址ftp://[FTPServerAddress]/[elilo路徑]經(jīng)由網(wǎng)絡(luò)340獲得可執(zhí)行文件elilo.efi文件。當(dāng)然,說明性實(shí)施例的機(jī)制支持許多變化形式。例如,不是使用文件傳送協(xié)議(ftp),可以使用包括tftp或http的其他協(xié)議。另外,可以提供用戶標(biāo)識(shí)符和密碼,例如,ftp://userid:password@192.168.70.5/maint/elilo-uldr.efi??蓤?zhí)行文件elilo.efi可以然后從從其加載其配置文件的相同位置獲得其配置文件,諸如可以在引導(dǎo)文件324中包括該配置文件。例如,作為作為裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)引導(dǎo)的整體的、用于配置系統(tǒng)的初始的一組帶外(OOB)操作的一部分,管理應(yīng)用332可以產(chǎn)生和在引導(dǎo)服務(wù)器320中存儲(chǔ)用于elilo.efi的配置文件或更一般而言的用于第二NBP326的配置文件。因此,通過配置文件配置根312以配置裸機(jī)計(jì)算設(shè)備300來利用與網(wǎng)絡(luò)340的網(wǎng)絡(luò)連接來連接到引導(dǎo)服務(wù)器320并且啟動(dòng)第一NBP316。實(shí)質(zhì)上,根312運(yùn)行來更換指示本地自舉操作的NBP的加載的映像控制(或配置)數(shù)據(jù),以具有使用與根312相關(guān)聯(lián)的配置文件314的模擬網(wǎng)絡(luò)環(huán)境。根312執(zhí)行與引導(dǎo)服務(wù)器320進(jìn)行通信的第一NBP316(例如,iPXE)以下載第二NBP326(例如,elilo.efi),并且在裸機(jī)計(jì)算設(shè)備300上執(zhí)行它。第二NBP326從引導(dǎo)服務(wù)器320下載微控制程序(MCP)322(操作系統(tǒng)內(nèi)核,諸如Linux內(nèi)核等)。MCP322在裸機(jī)計(jì)算設(shè)備300上執(zhí)行以下載另外的引導(dǎo)文件324,并且在裸機(jī)計(jì)算設(shè)備300上執(zhí)行操作以配置裸機(jī)計(jì)算設(shè)備300以用于執(zhí)行操作系統(tǒng)和應(yīng)用。一旦MCP322完成裸機(jī)計(jì)算設(shè)備300的其初始化,它通知裸機(jī)計(jì)算設(shè)備300準(zhǔn)備好執(zhí)行在裸機(jī)計(jì)算設(shè)備300上的應(yīng)用,然后卸載虛擬介質(zhì)映像310。即,與固件305相關(guān)聯(lián)的引導(dǎo)序列被修改以返回到原始引導(dǎo)序列,以使得能夠再一次本地引導(dǎo)裸機(jī)計(jì)算設(shè)備,并且去除從遠(yuǎn)程引導(dǎo)服務(wù)器引導(dǎo)裸機(jī)計(jì)算設(shè)備的指示。圖4是概述根據(jù)一個(gè)說明性實(shí)施例的用于從網(wǎng)絡(luò)引導(dǎo)服務(wù)器引導(dǎo)裸機(jī)計(jì)算設(shè)備的示例操作的流程圖。如圖4中所示,根據(jù)說明性實(shí)施例,操作以下述部分開始:執(zhí)行多個(gè)初步操作使得可以產(chǎn)生配置數(shù)據(jù)和虛擬介質(zhì)映像以允許的裸機(jī)計(jì)算設(shè)備的基于網(wǎng)絡(luò)的引導(dǎo)。雖然在圖4中將這些操作示出為整體操作的一部分,但是可以在相對(duì)于執(zhí)行其他操作410-436的時(shí)間相距遠(yuǎn)的時(shí)間與剩余的操作分離地執(zhí)行這些操作,即,操作402-408。而且,一個(gè)或多個(gè)獨(dú)立的軟件程序和諸如服務(wù)處理器等的一個(gè)或多個(gè)獨(dú)立的數(shù)據(jù)處理設(shè)備可以執(zhí)行這些操作402-408。如圖4中所述,作為可以被諸如管理服務(wù)器330的管理應(yīng)用332的管理應(yīng)用執(zhí)行的這些初步操作的一部分,例如通過下述方式執(zhí)行要利用的引導(dǎo)服務(wù)器和要用于引導(dǎo)裸機(jī)計(jì)算設(shè)備的網(wǎng)絡(luò)端口的帶外(OOB)確定:服務(wù)處理器等向一個(gè)或多個(gè)計(jì)算設(shè)備產(chǎn)生OOB查詢,并且那些計(jì)算設(shè)備以所請(qǐng)求的信息來響應(yīng),所請(qǐng)求的信息例如是網(wǎng)絡(luò)端口信息和引導(dǎo)服務(wù)器地址信息(步驟402)。在裸機(jī)計(jì)算設(shè)備(BMCD)中存儲(chǔ)引導(dǎo)列表,該引導(dǎo)列表識(shí)別從其引導(dǎo)裸機(jī)計(jì)算設(shè)備的設(shè)備或從其試圖引導(dǎo)裸機(jī)計(jì)算設(shè)備的設(shè)備的順序(步驟404)。該引導(dǎo)列表是在未在裸機(jī)計(jì)算設(shè)備上實(shí)現(xiàn)說明性實(shí)施例的機(jī)制的情況下裸機(jī)計(jì)算設(shè)備使用的通常的引導(dǎo)列表。引導(dǎo)列表被設(shè)置來通過例如管理應(yīng)用332從虛擬介質(zhì)映像引導(dǎo)裸機(jī)計(jì)算設(shè)備,該虛擬介質(zhì)映像例如是經(jīng)由裸機(jī)計(jì)算設(shè)備的本地可訪問的存儲(chǔ)器或存儲(chǔ)設(shè)備訪問的軟盤映像。這使得裸機(jī)計(jì)算設(shè)備使用根、配置信息和在虛擬介質(zhì)映像中存儲(chǔ)的網(wǎng)絡(luò)引導(dǎo)程序來開始其自舉操作。作為用于創(chuàng)建用于計(jì)算設(shè)備的網(wǎng)絡(luò)引導(dǎo)的系統(tǒng)的另一種初步操作,管理應(yīng)用可以進(jìn)一步創(chuàng)建用于裸機(jī)計(jì)算設(shè)備的虛擬介質(zhì)映像,并且使用根和配置信息來填充它(步驟406)。裸機(jī)計(jì)算設(shè)備被進(jìn)一步填充第一網(wǎng)絡(luò)引導(dǎo)程序(NBP),該第一NBP可以被根如上所述后來配置(步驟408)。第一NBP可以例如是iPXE引導(dǎo)程序,并且可以被提供為例如虛擬介質(zhì)映像的一部分。另外,雖然在圖4中未明確地示出,但是管理程序可以在位于遠(yuǎn)處的引導(dǎo)服務(wù)器上配置第二NBP以用于裸機(jī)計(jì)算設(shè)備(BMCD)的遠(yuǎn)程引導(dǎo)。在已經(jīng)配置了BMCD以用于初始通電的情況下,將BMCD通電,使得諸如UEFI的固件運(yùn)行,并且初始從在BMCD本地的虛擬介質(zhì)映像開始引導(dǎo)BMCD(步驟410)。虛擬介質(zhì)映像包括根,該根被執(zhí)行并且從虛擬介質(zhì)映像的對(duì)應(yīng)的配置文件讀取其網(wǎng)絡(luò)配置信息(步驟412)。基于該網(wǎng)絡(luò)配置信息,諸如MAC地址、帶寬地址等,根定位其本地網(wǎng)絡(luò)控制器,諸如NIC卡(步驟414)。根將網(wǎng)絡(luò)控制器配置信息存儲(chǔ)為模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境數(shù)據(jù)(步驟416),并且創(chuàng)建用于第一NBP的網(wǎng)絡(luò)引導(dǎo)程序(NBP)配置數(shù)據(jù)以用在連接到網(wǎng)絡(luò)中(步驟418)。根從虛擬介質(zhì)映像向存儲(chǔ)器內(nèi)加載NBP(步驟420),并且替換NBP加載映像控制數(shù)據(jù)(或配置數(shù)據(jù))替換為模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境數(shù)據(jù)(步驟422),該NBP加載映像控制數(shù)據(jù)(或配置數(shù)據(jù))指示未通過網(wǎng)絡(luò)連接加載NBP,因?yàn)閺谋镜亟橘|(zhì)(本地虛擬介質(zhì)映像)加載它。對(duì)于基于UEFI的裸機(jī)計(jì)算設(shè)備,例如,NBP的加載的映像控制數(shù)據(jù)的管理包括:將在UEFI數(shù)據(jù)結(jié)構(gòu)中包含的LoadedImage->DeviceHandle和LoadedImage->FilePath值修改為指示在所選擇的端口上的網(wǎng)絡(luò)操作的值。這實(shí)際上當(dāng)事實(shí)上NBP未通過網(wǎng)絡(luò)連接被加載時(shí)向NBP告訴它通過網(wǎng)絡(luò)連接被加載,由此模擬要使用的用于NBP的網(wǎng)絡(luò)環(huán)境。根然后調(diào)用NBP(步驟424),NBP讀取其控制數(shù)據(jù)(配置數(shù)據(jù)),該控制數(shù)據(jù)是模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境數(shù)據(jù),并且NBP進(jìn)行到網(wǎng)絡(luò)自舉操作(步驟426)。其他NBP可以是位于遠(yuǎn)處、被下載、被配置和被利用來幫助這個(gè)網(wǎng)絡(luò)自舉操作,雖然這是選擇性的,并且不是說明性實(shí)施例的機(jī)制的正確的操作的要求(步驟428)。作為網(wǎng)絡(luò)自舉操作的一部分,從遠(yuǎn)程引導(dǎo)服務(wù)器下載微控制程序(MCP)(步驟430),并且在BMCD上執(zhí)行它(步驟432)??梢允侵T如Linux內(nèi)核等操作系統(tǒng)內(nèi)核的MCP的執(zhí)行可以包含從引導(dǎo)服務(wù)器下載引導(dǎo)文件并且執(zhí)行這些引導(dǎo)文件。MCP然后通過下述方式來完成它的MBCD的初始化:執(zhí)行這些引導(dǎo)文件,并且然后通知BMCD準(zhǔn)備好執(zhí)行應(yīng)用(步驟434)。虛擬介質(zhì)映像然后被卸載,并且將在固件中的BMCD的引導(dǎo)列表恢復(fù)到其原始狀態(tài),使得從本地介質(zhì)執(zhí)行引導(dǎo)(步驟436)。操作然后結(jié)束。因此,說明性實(shí)施例的機(jī)制促進(jìn)了裸機(jī)計(jì)算設(shè)備的基于網(wǎng)絡(luò)的引導(dǎo)。說明性實(shí)施例的機(jī)制初始使用虛擬介質(zhì)映像在本地開始引導(dǎo)序列,然后模擬網(wǎng)絡(luò)引導(dǎo)環(huán)境,使得可以利用網(wǎng)絡(luò)引導(dǎo)程序來完成從位于遠(yuǎn)處的引導(dǎo)服務(wù)器引導(dǎo)裸機(jī)計(jì)算設(shè)備。這避免了:與不能訪問網(wǎng)絡(luò)連接的網(wǎng)絡(luò)引導(dǎo)程序相關(guān)聯(lián)的問題,除非它們本身通過那個(gè)網(wǎng)絡(luò)連接被加載;以及,與在裸機(jī)計(jì)算設(shè)備上使用這樣的機(jī)制相關(guān)聯(lián)的另一個(gè)問題,該裸機(jī)計(jì)算設(shè)備不必然具有操作系統(tǒng)等,該操作系統(tǒng)等向這樣的網(wǎng)絡(luò)引導(dǎo)程序通知在裸機(jī)計(jì)算設(shè)備中存在的網(wǎng)絡(luò)硬件。如上所述,應(yīng)當(dāng)明白,說明性實(shí)施例可以采取整個(gè)硬件實(shí)施例、整個(gè)軟件實(shí)施例或包含硬件和軟件元素的實(shí)施例的形式。在一個(gè)示例實(shí)施例中,以軟件或程序代碼來實(shí)現(xiàn)說明性實(shí)施例的機(jī)制,如果軟件或程序代碼包括但是不限于固件、駐留軟件、微碼等。適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括直接地或通過系統(tǒng)總線間接地耦合到存儲(chǔ)器元件的至少一個(gè)處理器。該存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、海量存儲(chǔ)器和高速緩存,該高速緩存提供至少一些程序代碼的暫時(shí)存儲(chǔ),以便減小必須在執(zhí)行期間從海量存儲(chǔ)器檢索代碼的次數(shù)。輸入/輸出或I/O設(shè)備(包括但是不限于鍵盤、顯示器、指示設(shè)備等)可以直接地或通過中間的I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠變得通過中間的專用或公共網(wǎng)絡(luò)而耦合到其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是當(dāng)前可獲得的類型的網(wǎng)絡(luò)適配器的幾種。已經(jīng)為了例示和說明的目的而提供了本發(fā)明的說明,并且本發(fā)明的說明不意欲是窮盡性的或限于以所公開的形式的本發(fā)明。許多修改和變化對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員是顯然的。選擇和描述實(shí)施例以便最佳地解釋本發(fā)明的原理、實(shí)際應(yīng)用,并且使得其他本領(lǐng)域內(nèi)的普通技術(shù)人員能夠針對(duì)具有適合于所考慮的特定用途的各種修改的各個(gè)實(shí)施例理解本發(fā)明。