• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當(dāng)前位置: 首頁 > 專利查詢>西安交通大學(xué)專利>正文

    一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)與方法技術(shù)方案

    技術(shù)編號:8347984 閱讀:265 留言:0更新日期:2013-02-21 01:37
    本發(fā)明專利技術(shù)公開了一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)與方法,涉及計算機(jī)容錯技術(shù),通過被隔離驅(qū)動程序的授權(quán)表,實現(xiàn)簡單、有效、兼容已有操作系統(tǒng)和驅(qū)動程序架構(gòu)的基于全虛擬化技術(shù)在虛擬機(jī)內(nèi)部隔離驅(qū)動程序的系統(tǒng),一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)包括運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊、虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊以及虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊,所述虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊包括:包裝函數(shù)庫、隔離控制子模塊以及消息通信子模塊。

    【技術(shù)實現(xiàn)步驟摘要】

    本專利技術(shù)屬于計算機(jī)科學(xué)領(lǐng)域,涉及計算機(jī)容錯技術(shù),特別涉及。
    技術(shù)介紹
    對于高可靠計算機(jī)系統(tǒng)來說,操作系統(tǒng)的可靠性顯得至關(guān)重要,但是由于操作系統(tǒng)的高度復(fù)雜性,使得其可靠性仍然是一個至關(guān)重要卻仍未解決的問題。通過可操作系統(tǒng)的可擴(kuò)展機(jī)制,大量第三方開發(fā)的驅(qū)動程序可被加載進(jìn)內(nèi)核。同時傳統(tǒng)操作系統(tǒng)的宏內(nèi)核架構(gòu),使得驅(qū)動與內(nèi)核將運行在相同的地址空間和特權(quán)級下,任何驅(qū)動程序的故障都可輕易的傳遞到內(nèi)核其他部分,嚴(yán)重削弱了系統(tǒng)的可靠性。由于驅(qū)動程序所占內(nèi)核代碼量的比例巨大,且常常缺乏完善的測試,使得驅(qū)動程序故障成為操作系統(tǒng)崩潰的主要原因。相關(guān)研究表明,Linux操作系統(tǒng)中驅(qū)動程序的故障是內(nèi)核其他部分故障的三到七倍,在Windows操作系統(tǒng)下也有類似的結(jié)論。近年來,虛擬機(jī)技術(shù)也被作為解決驅(qū)動程序可靠性問題的方法。傳統(tǒng)方法是將驅(qū)動及其內(nèi)核都隔離到獨立的虛擬機(jī)實例中,利用虛擬機(jī)實例本身的隔離性來隔離驅(qū)動程序。然而,這種方法只是利用虛擬機(jī)替代整機(jī)來承受可能出現(xiàn)的系統(tǒng)崩潰,從而換取整機(jī)的可靠性提高,對于虛擬機(jī)中的驅(qū)動程序的可靠性并沒有提高。如果虛擬機(jī)中的驅(qū)動程序發(fā)生故障則會造成虛擬機(jī)實例的故障或崩潰,從而造成虛擬機(jī)實例所提供的所有服務(wù)中斷。另外,每個被隔離的驅(qū)動程序運行一個獨立的客戶機(jī)操作系統(tǒng),同樣也造成了較多的性能損失。
    技術(shù)實現(xiàn)思路
    針對上述缺陷或不足,本專利技術(shù)提供了通過被隔離驅(qū)動程序的授權(quán)表,實現(xiàn)簡單、有效、兼容已有操作系統(tǒng)和驅(qū)動程序架構(gòu)的。為達(dá)到上述目的,本專利技術(shù)提供的在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)包括運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊、虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊以及虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊,其中,所述運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊將驅(qū)動模塊文件中監(jiān)視未定義符號與內(nèi)存信息監(jiān)視模塊中監(jiān)視包裝函數(shù)建立聯(lián)系,使得驅(qū)動以隔離方式運行,并向內(nèi)存信息監(jiān)視模塊中的隔離控制子模塊發(fā)出被隔離驅(qū)動程序提醒消息,以使得進(jìn)入內(nèi)核的驅(qū)動為被隔離驅(qū)動程序;所述監(jiān)視未定義符號包括內(nèi)存管理函數(shù)的未定義符號和驅(qū)動注冊函數(shù)的未定義符號;所述虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊包括包裝函數(shù)庫、隔離控制子模塊以及消息通信子模塊,其中,所述包裝函數(shù)庫為虛擬機(jī)內(nèi)核中所監(jiān)控的函數(shù)建立內(nèi)核包裝函數(shù),并為虛擬機(jī)內(nèi)核中驅(qū)動接口中的接口函數(shù)建立驅(qū)動包裝函數(shù),以使得被隔離驅(qū)動與內(nèi)核和驅(qū)動包裝函8數(shù)鏈接,并進(jìn)入隔離運行模式;所述內(nèi)核包裝函數(shù)包括內(nèi)存包裝函數(shù)和注冊包裝函數(shù),所述內(nèi)存包裝函數(shù)是指內(nèi)核中內(nèi)存管理函數(shù)的包裝函數(shù),所述注冊包裝函數(shù)是指內(nèi)核中驅(qū)動注冊函數(shù)的包裝函數(shù);所述隔離控制子模塊接收運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊發(fā)出的被隔離驅(qū)動程序提醒消息,建立被隔離驅(qū)動程序的相關(guān)信息,并指示消息通信子模塊向所述虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊發(fā)送設(shè)置被隔離驅(qū)動授權(quán)表的指令,同時,根據(jù)需要獲取可信任的虛擬機(jī)內(nèi)核的地址范圍,注入到內(nèi)存訪問控制模塊,并發(fā)出設(shè)置虛擬機(jī)管理器中影子頁表的指令;所述可信任的虛擬機(jī)內(nèi)核的地址范圍包括虛擬機(jī)內(nèi)核代碼和未被隔離的驅(qū)動程序代碼的內(nèi)存起始地址及其大小;所述消息通信子模塊向內(nèi)存訪問控制模塊實時報告被隔離驅(qū)動所使用內(nèi)存信息、可信任的虛擬機(jī)內(nèi)核的地址范圍、及發(fā)送建立被隔離驅(qū)動授權(quán)表的指令;所述消息通信子模塊被所述包裝函數(shù)庫和所述隔離控制子模塊調(diào)用;所述內(nèi)存訪問控制模塊用于控制被隔離驅(qū)動程序?qū)懖僮鳎ㄊ跈?quán)表管理子模塊、頁面設(shè)置子模塊以及缺頁處理子模塊,其中,所述授權(quán)表管理子模塊接收所述內(nèi)存信息監(jiān)視模塊發(fā)出的設(shè)置被隔離驅(qū)動授權(quán)表的指令后,設(shè)置被隔離驅(qū)動程序可寫內(nèi)存范圍的授權(quán)表,并負(fù)責(zé)確認(rèn)寫操作地址是否在授權(quán)表中;所述頁面設(shè)置子模塊接收所述內(nèi)存信息監(jiān)視模塊發(fā)出的設(shè)置虛擬機(jī)管理器中影子頁表的指令,并根據(jù)所述被隔離驅(qū)動所在虛擬機(jī)的內(nèi)核空間在虛擬機(jī)管理器中所對應(yīng)的影子頁表,將影子頁表設(shè)置為只讀另外,當(dāng)缺頁處理子模塊允許寫操作時,還接收所述缺頁處理子模塊發(fā)出的允許寫操作段的指令,并設(shè)置寫操作目標(biāo)地址對應(yīng)的影子頁表,在寫操作結(jié)束后,重新將影子頁表設(shè)置為只讀;所述缺頁處理子模塊當(dāng)被隔離驅(qū)動所在虛擬機(jī)內(nèi)核出現(xiàn)寫操作時,根據(jù)寫操作指令的來源和被隔離驅(qū)動對應(yīng)的授權(quán)表,判斷和控制是否允許進(jìn)行寫操作。運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊具體用于運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊,將驅(qū)動模塊文件中的內(nèi)存管理函數(shù)的未定義符號和驅(qū)動注冊函數(shù)的未定義符號替換為對應(yīng)的所述內(nèi)存包裝函數(shù)和注冊包裝函數(shù)的符號及其符號名;調(diào)用虛擬機(jī)內(nèi)核的原模塊加載方式加載驅(qū)動程序模塊,以使驅(qū)動程序模塊中包裝函數(shù)符號將自動鏈接到所述虛擬機(jī)內(nèi)存信息監(jiān)視模塊中的所監(jiān)控的包裝函數(shù),從而完成與內(nèi)核包裝函數(shù)建立聯(lián)系;虛擬機(jī)內(nèi)核的原模塊加載方式會調(diào)用驅(qū)動模塊的初始化函數(shù),執(zhí)行驅(qū)動注冊,驅(qū)動會自動調(diào)用已經(jīng)鏈接到注冊包裝函數(shù)的驅(qū)動注冊函數(shù),完成與驅(qū)動包裝函數(shù)建立聯(lián)系。所述隔離運行模式是指被隔離驅(qū)動程序使用的所有內(nèi)存信息都被實時的捕獲,并建立對應(yīng)的授權(quán)表,實現(xiàn)驅(qū)動程序隔離運行模式具體包括驅(qū)動在加載時,執(zhí)行驅(qū)動注冊函數(shù)向內(nèi)核的驅(qū)動接口注冊驅(qū)動程序,將內(nèi)核中驅(qū)動模塊各個功能函數(shù)的地址賦予驅(qū)動接口中的接口函數(shù)指針,通過所述驅(qū)動隔離加載模塊,驅(qū)動實際將執(zhí)行驅(qū)動注冊函數(shù)對應(yīng)的包裝函數(shù),即注冊包裝函數(shù),從而實現(xiàn)內(nèi)核對驅(qū)動調(diào)用過程的監(jiān)視;所述注冊包裝函數(shù)執(zhí)行所述虛擬機(jī)內(nèi)核中的原驅(qū)動注冊函數(shù),并執(zhí)行驅(qū)動接口中接口函數(shù)指針的替換操作;所述接口函數(shù)指針的替換操作是指將接口函數(shù)指針賦值成驅(qū)動包裝函數(shù)的地址,代替原驅(qū)動功能函數(shù)的地址;驅(qū)動程序加載后,驅(qū)動接口中的接口函數(shù)指針已被驅(qū)動包裝函數(shù)所替換,當(dāng)內(nèi)核調(diào)用驅(qū)動函數(shù)時,將執(zhí)行驅(qū)動包裝函數(shù),獲得驅(qū)動所使用的被賦予內(nèi)存信息和棧內(nèi)存信息;驅(qū)動包裝函數(shù)記錄被賦予內(nèi)存信息和棧內(nèi)存信息,并將被賦予內(nèi)存信息和棧內(nèi)存信息注入到虛擬機(jī)管理器的授權(quán)表管理子模塊,執(zhí)行被隔離驅(qū)動中的原驅(qū)動函數(shù);所述被賦予內(nèi)存信息包括內(nèi)核授權(quán)驅(qū)動操作的內(nèi)核數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址及其大小;所述棧內(nèi)存信息包括執(zhí)行驅(qū)動程序的進(jìn)程的棧的內(nèi)存起始地址及其大小;驅(qū)動在運行過程中,調(diào)用內(nèi)存管理函數(shù)來分配或釋放內(nèi)存,通過所述驅(qū)動隔離加載模塊,驅(qū)動實際將執(zhí)行內(nèi)存管理函數(shù)對應(yīng)的包裝函數(shù),即內(nèi)存包裝函數(shù),實現(xiàn)向內(nèi)核申請分配或釋放內(nèi)存;所述內(nèi)存包裝函數(shù)執(zhí)行所述虛擬機(jī)內(nèi)核中的原內(nèi)存管理函數(shù),并記錄分配或釋放的堆內(nèi)存信息,并將堆內(nèi)存信息注入到虛擬機(jī)管理器的授權(quán)表管理子模塊;所述堆內(nèi)存信息包括驅(qū)動程序向所述虛擬機(jī)內(nèi)核申請分配或釋放的內(nèi)存起始地址及其大小。所述內(nèi)存信息監(jiān)視模塊中的隔離控制子模塊具體用于I)當(dāng)接收運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊發(fā)出的被隔離驅(qū)動程序提醒消息時,將執(zhí)行以下操作向內(nèi)存訪問控制模塊中的授權(quán)表管理子模塊,發(fā)出建立被隔離驅(qū)動程序?qū)?yīng)授權(quán)表的指令;當(dāng)被隔離驅(qū)動是所述虛擬機(jī)中第一個被隔離的驅(qū)動時,向內(nèi)存訪問控制模塊中的頁面設(shè)置子模塊,發(fā)出設(shè)置虛擬機(jī)管理器中影子頁表為成只讀模式的指令;當(dāng)被隔離驅(qū)動是所述虛擬機(jī)中第一個被隔離的驅(qū)動時,向內(nèi)存訪問控制模塊中的缺頁處理子模塊,注入所述被隔離驅(qū)動所在虛擬機(jī)的可信任內(nèi)核空間的地址范圍;2)當(dāng)捕獲驅(qū)動進(jìn)入內(nèi)核的消息,但沒有接收到進(jìn)入內(nèi)核的驅(qū)動為被隔離驅(qū)動的消息時,將執(zhí)行以下操作向內(nèi)存訪問控制模塊中的缺頁處本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點】
    一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng),其特征在于:包括運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊、虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊以及虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊,其中,所述運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊:將驅(qū)動模塊文件中監(jiān)視未定義符號與內(nèi)存信息監(jiān)視模塊中監(jiān)視包裝函數(shù)建立聯(lián)系,使得驅(qū)動以隔離方式運行,并向內(nèi)存信息監(jiān)視模塊中的隔離控制子模塊發(fā)出被隔離驅(qū)動程序提醒消息,以使得進(jìn)入內(nèi)核的驅(qū)動為被隔離驅(qū)動程序;所述監(jiān)視未定義符號包括內(nèi)存管理函數(shù)的未定義符號和驅(qū)動注冊函數(shù)的未定義符號;所述虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊包括:包裝函數(shù)庫、隔離控制子模塊以及消息通信子模塊,其中,所述包裝函數(shù)庫:為虛擬機(jī)內(nèi)核中所監(jiān)控的函數(shù)建立內(nèi)核包裝函數(shù),并為虛擬機(jī)內(nèi)核中驅(qū)動接口中的接口函數(shù)建立驅(qū)動包裝函數(shù),以使得被隔離驅(qū)動與內(nèi)核和驅(qū)動包裝函數(shù)鏈接,并進(jìn)入隔離運行模式;所述內(nèi)核包裝函數(shù)包括內(nèi)存包裝函數(shù)和注冊包裝函數(shù),所述內(nèi)存包裝函數(shù)是指內(nèi)核中內(nèi)存管理函數(shù)的包裝函數(shù),所述注冊包裝函數(shù)是指內(nèi)核中驅(qū)動注冊函數(shù)的包裝函數(shù);所述隔離控制子模塊:接收運行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊發(fā)出的被隔離驅(qū)動程序提醒消息,建立被隔離驅(qū)動程序的相關(guān)信息,并指示消息通信子模塊向所述虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊發(fā)送設(shè)置被隔離驅(qū)動授權(quán)表的指令,同時,根據(jù)需要獲取可信任的虛擬機(jī)內(nèi)核的地址范圍,注入到內(nèi)存訪問控制模塊,并發(fā)出設(shè)置虛擬機(jī)管理器中影子頁表的指令;所述可信任的虛擬機(jī)內(nèi)核的地址范圍包括虛擬機(jī)內(nèi)核代碼和未被隔離的驅(qū)動程序代碼的內(nèi)存起始地址及其大小;所述消息通信子模塊:向內(nèi)存訪問控制模塊實時報告被隔離驅(qū)動所使用內(nèi)存信息、可信任的虛擬機(jī)內(nèi)核的地址范圍、及發(fā)送建立被隔離驅(qū)動授權(quán)表的指令;所述消息通信子模塊被所述包裝函數(shù)庫和所述隔離控制子模塊調(diào)用;所述內(nèi)存訪問控制模塊:用于控制被隔離驅(qū)動程序?qū)懖僮鳎ǎ菏跈?quán) 表管理子模塊、頁面設(shè)置子模塊以及缺頁處理子模塊,其中,所述授權(quán)表管理子模塊:接收所述內(nèi)存信息監(jiān)視模塊發(fā)出的設(shè)置被隔離驅(qū)動授權(quán)表的指令后,設(shè)置被隔離驅(qū)動程序可寫內(nèi)存范圍的授權(quán)表,并負(fù)責(zé)確認(rèn)寫操作地址是否在授權(quán)表中;所述頁面設(shè)置子模塊:接收所述內(nèi)存信息監(jiān)視模塊發(fā)出的設(shè)置虛擬機(jī)管理器中影子頁表的指令,并根據(jù)所述被隔離驅(qū)動所在虛擬機(jī)的內(nèi)核空間在虛擬機(jī)管理器中所對應(yīng)的影子頁表,將影子頁表設(shè)置為只讀另外,當(dāng)缺頁處理子模塊允許寫操作時,還接收所述缺頁處理子模塊發(fā)出的允許寫操作段的指令,并設(shè)置寫操作目標(biāo)地址對應(yīng)的影子頁表,在寫操作結(jié)束后,重新將影子頁表設(shè)置為只讀;所述缺頁處理子模塊:當(dāng)被隔離驅(qū)動所在虛擬機(jī)內(nèi)核出現(xiàn)寫操作時,根據(jù)寫操作指令的來源和被隔離驅(qū)動對應(yīng)的授權(quán)表,判斷和控制是否允許進(jìn)行寫操作。...

    【技術(shù)特征摘要】

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:董小社鄭豪張興軍王恩東辛龍張東陳寶可王強
    申請(專利權(quán))人:西安交通大學(xué)山東高效能服務(wù)器和存儲研究院
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 日韩AV无码一区二区三区不卡毛片 | 国产午夜片无码区在线播放| 精品人妻无码一区二区三区蜜桃一| 无码视频一区二区三区| 无码人妻精品丰满熟妇区| 亚洲精品无码专区在线在线播放| 18禁无遮挡无码国产免费网站| 亚洲AV无码乱码在线观看| 无码精品国产dvd在线观看9久| 亚洲精品无码久久久| 影音先锋中文无码一区| 国产免费无码AV片在线观看不卡| 老司机无码精品A| 精品欧洲AV无码一区二区男男 | 亚洲爆乳精品无码一区二区三区| 无码熟妇人妻av| 亚洲中文字幕无码中文| 午夜不卡无码中文字幕影院| 伊人蕉久中文字幕无码专区| 日韩av无码成人无码免费| 无码夫の前で人妻を侵犯| 亚洲va无码va在线va天堂| 中文有无人妻vs无码人妻激烈| 亚洲av无码av在线播放| 在线观看无码不卡AV| 久久久久亚洲AV片无码下载蜜桃| 日韩AV无码一区二区三区不卡毛片 | 久久人妻少妇嫩草AV无码专区| 成人午夜亚洲精品无码网站 | 亚洲永久无码3D动漫一区| 国产精品无码久久久久| 狼人无码精华AV午夜精品| 一道久在线无码加勒比| 精品一区二区三区无码免费直播| 无码国产精品一区二区高潮| 亚洲av永久无码天堂网| 无码熟妇αⅴ人妻又粗又大| 国产成人无码精品一区不卡| 国产成人无码a区在线视频| 亚洲Av无码乱码在线观看性色 | 成人无码区免费A片视频WWW|