亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法

文檔序號(hào):9453014閱讀:245來(lái)源:國(guó)知局
一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)微內(nèi)核技術(shù)領(lǐng)域,特別涉及一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法。
【背景技術(shù)】
[0002]內(nèi)核對(duì)象是操作系統(tǒng)為一些系統(tǒng)級(jí)的對(duì)象(像進(jìn)程,線程,信號(hào)量)維護(hù)的一些數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)構(gòu)保存了與系統(tǒng)級(jí)對(duì)象相關(guān)的系統(tǒng)級(jí)信息。
[0003]例如:所有內(nèi)核對(duì)象都會(huì)保存該對(duì)象的引用計(jì)數(shù),進(jìn)程對(duì)象會(huì)保存進(jìn)程ID,文件對(duì)象會(huì)保存當(dāng)前字節(jié)偏移量,共享模式,打開(kāi)模式等。
[0004]操作系統(tǒng)中所有內(nèi)核對(duì)象對(duì)是保存在一塊內(nèi)存空間中,系統(tǒng)上所有的進(jìn)程都共享這一塊內(nèi)存空間。
[0005]這些內(nèi)核對(duì)象不能被應(yīng)用程序直接訪問(wèn),應(yīng)用程序只能通過(guò)操作系統(tǒng)提供的API對(duì)他們進(jìn)行操作。而對(duì)操作系統(tǒng)API的訪問(wèn)過(guò)程中,操作系統(tǒng)會(huì)對(duì)訪問(wèn)的安全性進(jìn)行保證。這樣避免應(yīng)用程序?qū)?nèi)核對(duì)象進(jìn)行操作而導(dǎo)致系統(tǒng)出現(xiàn)錯(cuò)誤。
[0006]另外,多個(gè)進(jìn)程可以共享訪問(wèn)同一個(gè)內(nèi)核對(duì)象。
[0007]當(dāng)應(yīng)用程序創(chuàng)建或打開(kāi)一個(gè)新的內(nèi)核對(duì)象時(shí),系統(tǒng)API會(huì)返回給應(yīng)用程序一個(gè)句柄,該句柄是進(jìn)程級(jí)別的,之后便可以在應(yīng)用程序中使用該句柄來(lái)指定對(duì)該內(nèi)核對(duì)象進(jìn)行操作。
[0008]由于系統(tǒng)API返回給應(yīng)用程序的句柄是進(jìn)程級(jí)別的,因此同一個(gè)內(nèi)核對(duì)象在兩個(gè)不同進(jìn)程中的句柄不會(huì)一樣。一個(gè)進(jìn)程如果使用內(nèi)核對(duì)象在其他進(jìn)程中的句柄來(lái)訪問(wèn)內(nèi)核對(duì)象時(shí)會(huì)出錯(cuò)。
[0009]每個(gè)內(nèi)核對(duì)象都會(huì)有一個(gè)引用計(jì)數(shù)的概念,內(nèi)核對(duì)象被創(chuàng)建的時(shí)候,該值是I。之后每一個(gè)新的進(jìn)程獲得對(duì)該內(nèi)核對(duì)象訪問(wèn),則引用計(jì)數(shù)加I。當(dāng)每一個(gè)獲得訪問(wèn)的進(jìn)程釋放訪問(wèn)權(quán)利后(進(jìn)程關(guān)閉內(nèi)核對(duì)象的句柄),引用計(jì)數(shù)會(huì)被減I。當(dāng)引用計(jì)數(shù)減少至O后,操作系統(tǒng)將會(huì)把該內(nèi)核對(duì)象銷(xiāo)毀掉。
[0010]頁(yè)高速緩存的優(yōu)點(diǎn)在于:1)訪問(wèn)磁盤(pán)的速度遠(yuǎn)遠(yuǎn)低于訪問(wèn)內(nèi)存的速度,因此從內(nèi)存訪問(wèn)數(shù)據(jù)要比從磁盤(pán)訪問(wèn)速度快。2)數(shù)據(jù)一旦被訪問(wèn),就很有可能在短期內(nèi)被再次訪問(wèn)至|J。這種在短期內(nèi)集中訪問(wèn)同一片數(shù)據(jù)的原理被稱作臨時(shí)局部原理temporal locality。臨時(shí)局部原理保證:如果在第一次訪問(wèn)數(shù)據(jù)時(shí)緩存它,那就極有可能在短期內(nèi)再次被高速緩存命中。
[0011]微內(nèi)核(Micro kernel)是提供操作系統(tǒng)核心功能的內(nèi)核的精簡(jiǎn)版本,它設(shè)計(jì)成在很小的內(nèi)存空間內(nèi)增加移植性,提供模塊化設(shè)計(jì),以使用戶安裝不同的接口。因此,也可以說(shuō)微內(nèi)核是操作系統(tǒng)(OS)的最小核心。IBM、Microsoft、開(kāi)放軟件基金會(huì)(OSF)和UNIX系統(tǒng)實(shí)驗(yàn)室(USL)等新操作系統(tǒng)都采用了這一研究成果的優(yōu)點(diǎn)。
[0012]它呈現(xiàn)的是今天通常被認(rèn)為的操作系統(tǒng)的一個(gè)很小的子集。微內(nèi)核的定義由利特克給出:一個(gè)概念僅在以下條件下是可以容忍放在微內(nèi)核的,那就是當(dāng)將它移到內(nèi)核外時(shí),例如,允許競(jìng)爭(zhēng)的實(shí)現(xiàn),將防止系統(tǒng)所需功能的實(shí)現(xiàn)。
[0013]因此,微內(nèi)核不提供硬件上的高層次的抽象(文件,進(jìn)程,套接字等),如大多數(shù)現(xiàn)代操作系統(tǒng)Linux或Windows所做的那樣。相反,它提供了最少的機(jī)制用于控制物理地址空間訪問(wèn),中斷和處理器時(shí)間。使用這些機(jī)制的任何更高級(jí)別的結(jié)構(gòu)是建立在微內(nèi)核之上。這樣的更高級(jí)別的服務(wù)必然封裝策略。策略自由是一個(gè)精心設(shè)計(jì)的微內(nèi)核的一個(gè)重要特征。
[0014]微內(nèi)核是一種能夠提供必要服務(wù)的操作系統(tǒng)內(nèi)核,其中這些必要的服務(wù)包括任務(wù),線程,交互進(jìn)程通信(IPC,Inter-Process Communicat1n)以及內(nèi)存管理等等。所有服務(wù)(包括設(shè)備驅(qū)動(dòng))在用戶模式下運(yùn)行,而處理這些服務(wù)同處理其他的任何一個(gè)程序一樣。因?yàn)槊總€(gè)服務(wù)只是在自己的地址空間運(yùn)行。所以這些服務(wù)之間彼此之間都受到了保護(hù)。
[0015]微內(nèi)核具有非常明顯的優(yōu)勢(shì)。首先,微內(nèi)核能夠使得不同的API,文件系統(tǒng),甚至不同的操作系統(tǒng)的特性在一個(gè)系統(tǒng)中共存。
[0016]其次,微內(nèi)核系統(tǒng)非常靈活。當(dāng)運(yùn)行一個(gè)應(yīng)用程序時(shí),只需把選定的系統(tǒng)服務(wù)加載到系統(tǒng)中即可。而修改了服務(wù)以后可以通過(guò)聯(lián)機(jī)進(jìn)行測(cè)試;并不需要重新構(gòu)建或者啟動(dòng)一個(gè)新的內(nèi)核,他們并不影響系統(tǒng)的運(yùn)行。
[0017]第三,微內(nèi)核的系統(tǒng)服務(wù)或者設(shè)備驅(qū)動(dòng)故障和與它們有關(guān)的運(yùn)行任務(wù)是隔絕的。
[0018]第四,依存關(guān)系的服務(wù)器系統(tǒng)可以加以限制,使為安全重要至關(guān)信賴的計(jì)算基數(shù)的應(yīng)用可被削減。
[0019]第五,由微內(nèi)核所決定的結(jié)構(gòu)(IPC,多線程)能夠應(yīng)用在所有的應(yīng)用程序和服務(wù)上。一個(gè)精煉的微內(nèi)核接口能夠有演繹成更多模塊的系統(tǒng)結(jié)構(gòu)。

【發(fā)明內(nèi)容】

[0020]本發(fā)明為了彌補(bǔ)現(xiàn)有技術(shù)的缺陷,提供了一種應(yīng)用范圍廣泛,安全穩(wěn)定,使用方便的高安全的內(nèi)核對(duì)象內(nèi)存分配方法。
[0021]本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法,其特征在于:應(yīng)用程序創(chuàng)建新的內(nèi)核對(duì)象時(shí),首先判斷是否有足夠的內(nèi)存空間,若有足夠的內(nèi)存空間,則微內(nèi)核不動(dòng)態(tài)的為內(nèi)核對(duì)象分配內(nèi)存,成功創(chuàng)建內(nèi)核對(duì)象,精確地控制應(yīng)用程序可用物理內(nèi)存的大小,隔離應(yīng)用程序之間的物理內(nèi)存訪問(wèn);若沒(méi)有足夠的內(nèi)存空間,則認(rèn)為內(nèi)存不足,創(chuàng)建新的內(nèi)核對(duì)象失敗。
[0022]所述內(nèi)核對(duì)象必須明確被應(yīng)用程序控制的內(nèi)存區(qū)域通過(guò)無(wú)類型內(nèi)存控制功能創(chuàng)建。
[0023]為了創(chuàng)建新的內(nèi)核對(duì)象,應(yīng)用程序必須通過(guò)無(wú)類型的內(nèi)存控制功能明確指向所述內(nèi)核對(duì)象的內(nèi)存位置,所有內(nèi)核對(duì)象消耗的資源量必須一次創(chuàng)建完畢。
[0024]本發(fā)明的有益效果是:該高安全的內(nèi)核對(duì)象內(nèi)存分配方法,可以用來(lái)精確地控制應(yīng)用程序可用物理內(nèi)存的大小,以及能夠隔離應(yīng)用程序之間的物理內(nèi)存訪問(wèn)。
【附圖說(shuō)明】
[0025]附圖1為本發(fā)明高安全的內(nèi)核對(duì)象內(nèi)存分配方法示意圖。
【具體實(shí)施方式】
[0026]附圖為本發(fā)明的一種具體實(shí)施例,下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0027]該高安全的內(nèi)核對(duì)象內(nèi)存分配方法,應(yīng)用程序創(chuàng)建新的內(nèi)核對(duì)象時(shí),首先判斷是否有足夠的內(nèi)存空間,若有足夠的內(nèi)存空間,則微內(nèi)核不動(dòng)態(tài)的為內(nèi)核對(duì)象分配內(nèi)存,成功創(chuàng)建內(nèi)核對(duì)象,精確地控制應(yīng)用程序可用物理內(nèi)存的大小,隔離應(yīng)用程序之間的物理內(nèi)存訪問(wèn);若沒(méi)有足夠的內(nèi)存空間,則認(rèn)為內(nèi)存不足,創(chuàng)建新的內(nèi)核對(duì)象失敗。
[0028]所述內(nèi)核對(duì)象必須明確被應(yīng)用程序控制的內(nèi)存區(qū)域通過(guò)無(wú)類型內(nèi)存控制功能創(chuàng)建。
[0029]為了創(chuàng)建新的內(nèi)核對(duì)象,應(yīng)用程序必須通過(guò)無(wú)類型的內(nèi)存控制功能明確指向所述內(nèi)核對(duì)象的內(nèi)存位置,所有內(nèi)核對(duì)象消耗的資源量必須一次創(chuàng)建完畢。
【主權(quán)項(xiàng)】
1.一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法,其特征在于:應(yīng)用程序創(chuàng)建新的內(nèi)核對(duì)象時(shí),首先判斷是否有足夠的內(nèi)存空間,若有足夠的內(nèi)存空間,則微內(nèi)核不動(dòng)態(tài)的為內(nèi)核對(duì)象分配內(nèi)存,成功創(chuàng)建內(nèi)核對(duì)象,精確地控制應(yīng)用程序可用物理內(nèi)存的大小,隔離應(yīng)用程序之間的物理內(nèi)存訪問(wèn);若沒(méi)有足夠的內(nèi)存空間,則認(rèn)為內(nèi)存不足,創(chuàng)建新的內(nèi)核對(duì)象失敗。2.根據(jù)權(quán)利要求1所述的高安全的內(nèi)核對(duì)象內(nèi)存分配方法,其特征在于:所述內(nèi)核對(duì)象必須明確被應(yīng)用程序控制的內(nèi)存區(qū)域通過(guò)無(wú)類型內(nèi)存控制功能創(chuàng)建。3.根據(jù)權(quán)利要求1所述的高安全的內(nèi)核對(duì)象內(nèi)存分配方法,其特征在于:為了創(chuàng)建新的內(nèi)核對(duì)象,應(yīng)用程序必須通過(guò)無(wú)類型的內(nèi)存控制功能明確指向所述內(nèi)核對(duì)象的內(nèi)存位置,所有內(nèi)核對(duì)象消耗的資源量必須一次創(chuàng)建完畢。
【專利摘要】本發(fā)明特別涉及一種高安全的內(nèi)核對(duì)象內(nèi)存分配方法。該高安全的內(nèi)核對(duì)象內(nèi)存分配方法,在設(shè)備驅(qū)動(dòng)程序的HAL層代碼中加入驅(qū)動(dòng)認(rèn)證與檢測(cè)機(jī)制,對(duì)要加載的驅(qū)動(dòng)模塊進(jìn)行認(rèn)證與檢測(cè),當(dāng)所述驅(qū)動(dòng)模塊通過(guò)認(rèn)證與檢測(cè)時(shí),正常加載驅(qū)動(dòng)程序;當(dāng)所述驅(qū)動(dòng)模塊沒(méi)能通過(guò)認(rèn)證與檢測(cè)時(shí),不加載驅(qū)動(dòng)程序。該高安全的內(nèi)核對(duì)象內(nèi)存分配方法,實(shí)現(xiàn)了Android運(yùn)行環(huán)境中,對(duì)HAL驅(qū)動(dòng)模塊的認(rèn)證和監(jiān)控,避免了驅(qū)動(dòng)模塊做一些不在本職范圍內(nèi)的事情,尤其是違法行為,維護(hù)了系統(tǒng)安全,避免了用戶的損失。
【IPC分類】G06F21/51, G06F12/08
【公開(kāi)號(hào)】CN105205013
【申請(qǐng)?zhí)枴緾N201510586611
【發(fā)明人】仇偉民, 劉秋杉, 戴鴻君, 于治樓
【申請(qǐng)人】浪潮集團(tuán)有限公司
【公開(kāi)日】2015年12月30日
【申請(qǐng)日】2015年9月15日
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1