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