本發(fā)明涉及操作系統(tǒng)安全技術(shù)領(lǐng)域,尤其涉及一種硬件自動適應(yīng)方法及系統(tǒng)。
背景技術(shù):
目前計算機越來越普及,人們在日常生活中對其也越來越依賴,而操作系統(tǒng)作為計算機的核心部分,操作系統(tǒng)的安全會直接決定計算機能否正常工作及運行,為了保證操作系統(tǒng)的安全,操作系統(tǒng)遷移及操作系統(tǒng)還原是常用的手段。
操作系統(tǒng)遷移是指把一臺計算機的操作系統(tǒng)和數(shù)據(jù)遷移到另外一臺計算機上,遷移前的計算機叫源計算機,遷移到的計算機稱為目標(biāo)計算機。源計算機和目標(biāo)計算機均可是物理計算機,也可是虛擬的計算機。
操作系統(tǒng)還原是指把計算機的操作系統(tǒng)以及數(shù)據(jù)恢復(fù)到之前的某一個狀態(tài)。為了支持操作系統(tǒng)還原,需要定時或者實時的把一臺計算機的狀態(tài)保存到備份數(shù)據(jù)庫。執(zhí)行備份操作的計算機稱為備份源計算機,備份數(shù)據(jù)庫中保存的狀態(tài)稱為還原點。還原的時候就是把備份數(shù)據(jù)庫中的還原點恢復(fù)到一臺目標(biāo)計算機上。這個目標(biāo)計算機可以是一臺物理計算機,也可以是一臺虛擬的計算機。
但在目標(biāo)計算機上進行操作系統(tǒng)遷移或操作系統(tǒng)還原之后,由于操作系統(tǒng)中沒有安裝計算機硬件設(shè)備的驅(qū)動程序,從而導(dǎo)致目標(biāo)計算機無法正常使用。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種硬件自動適應(yīng)方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中在目標(biāo)計算機上進行操作系統(tǒng)遷移或操作系統(tǒng)還原之后,目標(biāo)計算機無法正常使用的技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明提供一種硬件自動適應(yīng)方法,所述方法包括以下步驟:
獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合;
根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序;
將獲取的驅(qū)動程序安裝至操作系統(tǒng)中;
將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
優(yōu)選地,所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息。
優(yōu)選地,所述根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序,具體包括:
從根節(jié)點到葉子節(jié)點的順序?qū)λ鲈O(shè)備樹進行遍歷,根據(jù)遍歷到的硬件設(shè)備的配置信息創(chuàng)建對應(yīng)的虛擬設(shè)備,并獲取與創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
優(yōu)選地,所述獲取與創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序,具體包括:
向所述操作系統(tǒng)發(fā)送驅(qū)動程序掃描指令,在所述操作系統(tǒng)未掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,在設(shè)備驅(qū)動庫中查找并下載所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
優(yōu)選地,所述獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,具體包括:
接收所述目標(biāo)計算機發(fā)送的所述配置信息集合。
此外,為實現(xiàn)上述目的,本發(fā)明還提供一種硬件自動適應(yīng)系統(tǒng),所述系統(tǒng)包括:
集合獲取模塊,用于獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合;
驅(qū)動獲取模塊,用于根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序;
驅(qū)動安裝模塊,用于將獲取的驅(qū)動程序安裝至操作系統(tǒng)中;
系統(tǒng)轉(zhuǎn)移模塊,用于將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
優(yōu)選地,所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息。
優(yōu)選地,所述驅(qū)動獲取模塊,還用于從根節(jié)點到葉子節(jié)點的順序?qū)λ鲈O(shè)備樹進行遍歷,根據(jù)遍歷到的硬件設(shè)備的配置信息創(chuàng)建對應(yīng)的虛擬設(shè)備,并獲取與創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
優(yōu)選地,所述驅(qū)動獲取模塊,還用于向所述操作系統(tǒng)發(fā)送驅(qū)動程序掃描指令,在所述操作系統(tǒng)未掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,在設(shè)備驅(qū)動庫中查找并下載所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
優(yōu)選地,所述集合獲取模塊,用于接收所述目標(biāo)計算機發(fā)送的所述配置信息集合。
本發(fā)明通過先獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,再根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序,接著將獲取的驅(qū)動程序安裝至操作系統(tǒng)中,最后將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機,從而保證在目標(biāo)計算機上進行操作系統(tǒng)遷移或操作系統(tǒng)還原之后,目標(biāo)計算機能夠正常使用。
附圖說明
圖1為本發(fā)明一種實施例的硬件自動適應(yīng)方法的流程示意圖;
圖2為本發(fā)明實施例中操作系統(tǒng)遷移過程的示意圖;
圖3為本發(fā)明實施例中操作系統(tǒng)還原過程的示意圖;
圖4為本發(fā)明一種實施例的硬件自動適應(yīng)系統(tǒng)的功能模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
參照圖1,本發(fā)明一實施例提供一種硬件自動適應(yīng)方法,所述方法包括:
s10:獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合;
需要說明的是,本實施例的方法的執(zhí)行主體可為圖2所示的操作系統(tǒng)遷移過程中源計算機上的虛擬設(shè)備agent程序,也可為圖3所示的操作系統(tǒng)還原過程中虛擬化平臺上的虛擬設(shè)備agent程序。
可理解的是,為便于獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,本實施例中,也就是說,接收所述目標(biāo)計算機發(fā)送的所述配置信息集合。
在具體實現(xiàn)中,所述目標(biāo)計算機可能是一臺裸的計算機,尚未安裝操作系統(tǒng),也可能是一臺安裝了操作系統(tǒng)的計算機。如果是一臺裸的計算機,則通過u盤、光盤或者網(wǎng)絡(luò)加載一個簡易的引導(dǎo)系統(tǒng),這個系統(tǒng)裝有虛擬設(shè)備agent程序,它可以收集目標(biāo)計算機中各硬件設(shè)備的配置信息集合(包括總線信息、控制器信息及設(shè)備信息),并將所述硬件配置集合發(fā)送至所述源計算機或虛擬化平臺;如果是一個裝有操作系統(tǒng)的計算機,那么可以直接在操作系統(tǒng)上安裝虛擬設(shè)備agent這個軟件,由它可以收集計算機的硬件設(shè)備配置信息,并將所述硬件配置集合發(fā)送至所述源計算機或虛擬化平臺。
從操作系統(tǒng)的角度來看,目標(biāo)計算機所有連接的設(shè)備是呈現(xiàn)一個樹形關(guān)系的,所以虛擬設(shè)備agent在保存設(shè)備配置信息的時候也要把這個樹形關(guān)系保存下來,也就是說,所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息。
s20:根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序;
當(dāng)所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息時,為便于快速獲取驅(qū)動程序,本實施例中,可從根節(jié)點到葉子節(jié)點的順序?qū)λ鲈O(shè)備樹進行遍歷,根據(jù)遍歷到的硬件設(shè)備的配置信息創(chuàng)建對應(yīng)的虛擬設(shè)備,并獲取與創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
當(dāng)然,由于所述操作系統(tǒng)中可能本身已經(jīng)安裝了有些驅(qū)動程序,為防止這些驅(qū)動程序重復(fù)獲取,本實施例中,可向所述操作系統(tǒng)發(fā)送驅(qū)動程序掃描指令,在所述操作系統(tǒng)未掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,在設(shè)備驅(qū)動庫中查找并下載所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
反之,在所述操作系統(tǒng)掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,可直接認(rèn)定為已經(jīng)獲取所述驅(qū)動程序,無需進行后續(xù)的驅(qū)動程序安裝的步驟。
可理解的是,所述設(shè)備驅(qū)動庫中存放了各種計算機設(shè)備的驅(qū)動程序,這些驅(qū)動程序可能是設(shè)備生產(chǎn)商提供的,也有可能是從操作系統(tǒng)上提取的,還可能是根據(jù)操作系統(tǒng)信息用源代碼編譯生成的。
需要說明的是,從操作系統(tǒng)的角度出發(fā),這些虛擬設(shè)備和目標(biāo)計算機上的物理設(shè)備是一樣的,也就是說,對于操作系統(tǒng)而言,對虛擬設(shè)備所采用處理過程與物理設(shè)備所采用的處理過程一致。
在具體實現(xiàn)中,設(shè)備驅(qū)動庫中可能會沒有存在對應(yīng)的驅(qū)動程序的情況,此時,設(shè)備驅(qū)動庫可根據(jù)硬件設(shè)備的配置信息嘗試編譯一個驅(qū)動程序,下發(fā)給虛擬設(shè)備agent程序;如果無法編譯驅(qū)動程序,設(shè)備驅(qū)動庫就會到網(wǎng)上去下載。
s30:將獲取的驅(qū)動程序安裝至操作系統(tǒng)中;
可理解的是,在所述操作系統(tǒng)中安裝完對應(yīng)的驅(qū)動程序,那么這個操作系統(tǒng)可以在目標(biāo)計算機正常運行了。
s40:將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
需要說明的是,如果是針對操作系統(tǒng)遷移過程,可直接將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機;如果是做操作系統(tǒng)還原的,也可直接將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
在具體實現(xiàn)中,操作系統(tǒng)在目標(biāo)計算機啟動的時候,有些設(shè)備需要重新配置才能使用,比如網(wǎng)卡,虛擬設(shè)備agent程序會對需要配置的設(shè)備重新配置,保證所有的設(shè)備都可以正常使用。在虛擬設(shè)備agent程序的配合下,不管是做操作系統(tǒng)遷移還是做操作系統(tǒng)還原,源計算機的操作系統(tǒng)都可以自動適應(yīng)目標(biāo)計算機的硬件配置環(huán)境。
本實施例通過先獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,再根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序,接著將獲取的驅(qū)動程序安裝至操作系統(tǒng)中,最后將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機,從而保證在目標(biāo)計算機上進行操作系統(tǒng)遷移或操作系統(tǒng)還原之后,目標(biāo)計算機能夠正常使用。
參照圖4,本發(fā)明一種實施例提供一種硬件自動適應(yīng)系統(tǒng),所述系統(tǒng)包括:
集合獲取模塊10,用于獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合;
需要說明的是,本實施例的系統(tǒng)可為圖2所示的操作系統(tǒng)遷移過程中源計算機上的虛擬設(shè)備agent程序,也可為圖3所示的操作系統(tǒng)還原過程中虛擬化平臺上的虛擬設(shè)備agent程序。
可理解的是,為便于獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,本實施例中,也就是說,接收所述目標(biāo)計算機發(fā)送的所述配置信息集合。
在具體實現(xiàn)中,所述目標(biāo)計算機可能是一臺裸的計算機,尚未安裝操作系統(tǒng),也可能是一臺安裝了操作系統(tǒng)的計算機。如果是一臺裸的計算機,則通過u盤、光盤或者網(wǎng)絡(luò)加載一個簡易的引導(dǎo)系統(tǒng),這個系統(tǒng)裝有虛擬設(shè)備agent程序,它可以收集目標(biāo)計算機中各硬件設(shè)備的配置信息集合(包括總線信息、控制器信息及設(shè)備信息),并將所述硬件配置集合發(fā)送至所述源計算機或虛擬化平臺;如果是一個裝有操作系統(tǒng)的計算機,那么可以直接在操作系統(tǒng)上安裝虛擬設(shè)備agent這個軟件,由它可以收集計算機的硬件設(shè)備配置信息,并將所述硬件配置集合發(fā)送至所述源計算機或虛擬化平臺。
從操作系統(tǒng)的角度來看,目標(biāo)計算機所有連接的設(shè)備是呈現(xiàn)一個樹形關(guān)系的,所以虛擬設(shè)備agent在保存設(shè)備配置信息的時候也要把這個樹形關(guān)系保存下來,也就是說,所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息。
驅(qū)動獲取模塊20,用于根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序;
當(dāng)所述配置信息集合采用設(shè)備樹形式,所述設(shè)備樹中各節(jié)點分別對應(yīng)硬件設(shè)備的配置信息時,為便于快速獲取驅(qū)動程序,本實施例中,可從根節(jié)點到葉子節(jié)點的順序?qū)λ鲈O(shè)備樹進行遍歷,根據(jù)遍歷到的硬件設(shè)備的配置信息創(chuàng)建對應(yīng)的虛擬設(shè)備,并獲取與創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
當(dāng)然,由于所述操作系統(tǒng)中可能本身已經(jīng)安裝了有些驅(qū)動程序,為防止這些驅(qū)動程序重復(fù)獲取,本實施例中,可向所述操作系統(tǒng)發(fā)送驅(qū)動程序掃描指令,在所述操作系統(tǒng)未掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,在設(shè)備驅(qū)動庫中查找并下載所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序。
反之,在所述操作系統(tǒng)掃描到所述創(chuàng)建的虛擬設(shè)備對應(yīng)的驅(qū)動程序時,可直接認(rèn)定為已經(jīng)獲取所述驅(qū)動程序,無需進行后續(xù)的驅(qū)動程序安裝的步驟。
可理解的是,所述設(shè)備驅(qū)動庫中存放了各種計算機設(shè)備的驅(qū)動程序,這些驅(qū)動程序可能是設(shè)備生產(chǎn)商提供的,也有可能是從操作系統(tǒng)上提取的,還可能是根據(jù)操作系統(tǒng)信息用源代碼編譯生成的。
需要說明的是,從操作系統(tǒng)的角度出發(fā),這些虛擬設(shè)備和目標(biāo)計算機上的物理設(shè)備是一樣的,也就是說,對于操作系統(tǒng)而言,對虛擬設(shè)備所采用處理過程與物理設(shè)備所采用的處理過程一致。
在具體實現(xiàn)中,設(shè)備驅(qū)動庫中可能會沒有存在對應(yīng)的驅(qū)動程序的情況,此時,設(shè)備驅(qū)動庫可根據(jù)硬件設(shè)備的配置信息嘗試編譯一個驅(qū)動程序,下發(fā)給虛擬設(shè)備agent程序;如果無法編譯驅(qū)動程序,設(shè)備驅(qū)動庫就會到網(wǎng)上去下載。
驅(qū)動安裝模塊30,用于將獲取的驅(qū)動程序安裝至操作系統(tǒng)中;
可理解的是,在所述操作系統(tǒng)中安裝完對應(yīng)的驅(qū)動程序,那么這個操作系統(tǒng)可以在目標(biāo)計算機正常運行了。
系統(tǒng)轉(zhuǎn)移模塊40,用于將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
需要說明的是,如果是針對操作系統(tǒng)遷移過程,可直接將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機;如果是做操作系統(tǒng)還原的,也可直接將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機。
在具體實現(xiàn)中,操作系統(tǒng)在目標(biāo)計算機啟動的時候,有些設(shè)備需要重新配置才能使用,比如網(wǎng)卡,虛擬設(shè)備agent程序會對需要配置的設(shè)備重新配置,保證所有的設(shè)備都可以正常使用。在虛擬設(shè)備agent程序的配合下,不管是做操作系統(tǒng)遷移還是做操作系統(tǒng)還原,源計算機的操作系統(tǒng)都可以自動適應(yīng)目標(biāo)計算機的硬件配置環(huán)境。
本實施例通過先獲取目標(biāo)計算機中各硬件設(shè)備的配置信息集合,再根據(jù)所述配置信息集合生成對應(yīng)的虛擬設(shè)備,并獲取與各虛擬設(shè)備對應(yīng)的驅(qū)動程序,接著將獲取的驅(qū)動程序安裝至操作系統(tǒng)中,最后將安裝所述驅(qū)動程序的操作系統(tǒng)轉(zhuǎn)移至所述目標(biāo)計算機,從而保證在目標(biāo)計算機上進行操作系統(tǒng)遷移或操作系統(tǒng)還原之后,目標(biāo)計算機能夠正常使用。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。