[發(fā)明專利]一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)與方法有效
| 申請?zhí)枺?/td> | 201210442752.4 | 申請日: | 2012-11-08 |
| 公開(公告)號: | CN102938035A | 公開(公告)日: | 2013-02-20 |
| 發(fā)明(設(shè)計(jì))人: | 董小社;鄭豪;張興軍;王恩東;辛龍;張東;陳寶可;王強(qiáng) | 申請(專利權(quán))人: | 西安交通大學(xué);山東高效能服務(wù)器和存儲研究院 |
| 主分類號: | G06F21/50 | 分類號: | G06F21/50;G06F9/455 |
| 代理公司: | 西安通大專利代理有限責(zé)任公司 61200 | 代理人: | 陸萬壽 |
| 地址: | 710049 *** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 虛擬機(jī) 內(nèi)部 驅(qū)動 隔離 系統(tǒng) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)科學(xué)領(lǐng)域,涉及計(jì)算機(jī)容錯(cuò)技術(shù),特別涉及一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)與方法。
背景技術(shù)
對于高可靠計(jì)算機(jī)系統(tǒng)來說,操作系統(tǒng)的可靠性顯得至關(guān)重要,但是由于操作系統(tǒng)的高度復(fù)雜性,使得其可靠性仍然是一個(gè)至關(guān)重要卻仍未解決的問題。通過可操作系統(tǒng)的可擴(kuò)展機(jī)制,大量第三方開發(fā)的驅(qū)動程序可被加載進(jìn)內(nèi)核。同時(shí)傳統(tǒng)操作系統(tǒng)的宏內(nèi)核架構(gòu),使得驅(qū)動與內(nèi)核將運(yùn)行在相同的地址空間和特權(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)核都隔離到獨(dú)立的虛擬機(jī)實(shí)例中,利用虛擬機(jī)實(shí)例本身的隔離性來隔離驅(qū)動程序。然而,這種方法只是利用虛擬機(jī)替代整機(jī)來承受可能出現(xiàn)的系統(tǒng)崩潰,從而換取整機(jī)的可靠性提高,對于虛擬機(jī)中的驅(qū)動程序的可靠性并沒有提高。如果虛擬機(jī)中的驅(qū)動程序發(fā)生故障則會造成虛擬機(jī)實(shí)例的故障或崩潰,從而造成虛擬機(jī)實(shí)例所提供的所有服務(wù)中斷。另外,每個(gè)被隔離的驅(qū)動程序運(yùn)行一個(gè)獨(dú)立的客戶機(jī)操作系統(tǒng),同樣也造成了較多的性能損失。
發(fā)明內(nèi)容
針對上述缺陷或不足,本發(fā)明提供了通過被隔離驅(qū)動程序的授權(quán)表,實(shí)現(xiàn)簡單、有效、兼容已有操作系統(tǒng)和驅(qū)動程序架構(gòu)的一種在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng)與方法。
為達(dá)到上述目的,本發(fā)明提供的在虛擬機(jī)內(nèi)部的驅(qū)動隔離系統(tǒng):
包括運(yùn)行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊、虛擬機(jī)內(nèi)核態(tài)的內(nèi)存信息監(jiān)視模塊以及虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊,其中,
所述運(yùn)行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊:將驅(qū)動模塊文件中監(jiān)視未定義符號與內(nèi)存信息監(jiān)視模塊中監(jiān)視包裝函數(shù)建立聯(lián)系,使得驅(qū)動以隔離方式運(yùn)行,并向內(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)入隔離運(yùn)行模式;所述內(nèi)核包裝函數(shù)包括內(nèi)存包裝函數(shù)和注冊包裝函數(shù),所述內(nèi)存包裝函數(shù)是指內(nèi)核中內(nèi)存管理函數(shù)的包裝函數(shù),所述注冊包裝函數(shù)是指內(nèi)核中驅(qū)動注冊函數(shù)的包裝函數(shù);
所述隔離控制子模塊:接收運(yùn)行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊發(fā)出的被隔離驅(qū)動程序提醒消息,建立被隔離驅(qū)動程序的相關(guān)信息,并指示消息通信子模塊向所述虛擬機(jī)管理器內(nèi)部的內(nèi)存訪問控制模塊發(fā)送設(shè)置被隔離驅(qū)動授權(quán)表的指令,同時(shí),根據(jù)需要獲取可信任的虛擬機(jī)內(nèi)核的地址范圍,注入到內(nèi)存訪問控制模塊,并發(fā)出設(shè)置虛擬機(jī)管理器中影子頁表的指令;所述可信任的虛擬機(jī)內(nèi)核的地址范圍包括虛擬機(jī)內(nèi)核代碼和未被隔離的驅(qū)動程序代碼的內(nèi)存起始地址及其大小;
所述消息通信子模塊:向內(nèi)存訪問控制模塊實(shí)時(shí)報(bào)告被隔離驅(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)缺頁處理子模塊允許寫操作時(shí),還接收所述缺頁處理子模塊發(fā)出的允許寫操作段的指令,并設(shè)置寫操作目標(biāo)地址對應(yīng)的影子頁表,在寫操作結(jié)束后,重新將影子頁表設(shè)置為只讀;
所述缺頁處理子模塊:當(dāng)被隔離驅(qū)動所在虛擬機(jī)內(nèi)核出現(xiàn)寫操作時(shí),根據(jù)寫操作指令的來源和被隔離驅(qū)動對應(yīng)的授權(quán)表,判斷和控制是否允許進(jìn)行寫操作。
運(yùn)行于虛擬機(jī)用戶態(tài)的驅(qū)動隔離加載模塊具體用于:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安交通大學(xué);山東高效能服務(wù)器和存儲研究院,未經(jīng)西安交通大學(xué);山東高效能服務(wù)器和存儲研究院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210442752.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 一種可信虛擬機(jī)平臺
- 虛擬機(jī)參數(shù)遷移的方法、設(shè)備和虛擬機(jī)服務(wù)器
- 一種虛擬機(jī)系統(tǒng)及其安全控制方法
- 一種云計(jì)算系統(tǒng)動態(tài)分配虛擬機(jī)的方法
- 一種恢復(fù)、升級虛擬機(jī)的方法及裝置
- 虛擬機(jī)切換系統(tǒng)及切換方法
- 處理虛擬機(jī)集群的方法和計(jì)算機(jī)系統(tǒng)
- 虛擬機(jī)故障檢測、恢復(fù)系統(tǒng)及虛擬機(jī)檢測、恢復(fù)、啟動方法
- 一種虛擬機(jī)遷移方法和系統(tǒng)
- 一種虛擬機(jī)容錯(cuò)系統(tǒng)及其容錯(cuò)方法





