新四季網

內核空間隔離方法、空間管理實體及系統的製作方法

2023-10-05 15:14:34 4

專利名稱:內核空間隔離方法、空間管理實體及系統的製作方法
技術領域:
本發明涉及網絡技術領域,特別涉及內核空間隔離方法、空間管理實體及系統。
背景技術:
現有的Linux/Unix中的SMP( Symmetrical Multi-Processing ,對稱多處理)系統中,多個CPU核都映射到相同的內核空間,為了方便描述,以SMP系統採用具體的CPU,如X86架構CPU核為例進行說明,當採用X86架構的CPU核時,CPU核採用兩級映射關係,包括頁目錄和頁表;
Linux的虛擬地址空間為0-4G,將這4G空間分為兩部分,將最高的1G字節(從虛擬地址OxCOOOOOOO到OxFFFFFFFF )供內核使用,稱為內核地址空間(簡稱內核空間)。而將4K氐的3G字節(從虛擬地址0x00000000到0xBFFFFFFF),作為用戶地址空間。其中,內核地址空間中保存有內核頁目錄和內核頁表,用於將內核中虛擬地址映射到對應的物理內存空間;其中,內核頁目錄包括多個頁目錄項,每個頁目錄項對應一個內核頁表,即每個頁目錄項中保存有對應內核頁表的地址,內核頁表中包括多個頁表項,每個頁表項對應一個物理頁,即每個頁表項中有對應物理頁的物理地址。
現有的Linux/Unix中的SMP( Symmetrical Multi-Processing,對稱多處理)系統中,在創建進程時,進程頁目錄中前部分頁目錄項(固定數目的頁目錄項)映射到用戶地址空間,後部分映射到內核地址空間,其內核地址空間都指向相同的物理地址。
在實現本發明的過程中,發明人發現現有技術中至少存在如下問題現有的SMP系統中,對於所有內核態業務(如內核線程),內核空間都是相同的,因此內核空間被所有內核態業務共享,使不同CPU核運行內核態業務時所需要的物理空間(內核地址空間所映射的物理空間)也相同,難以保證內核態業務在CPU上運行時的安全性。

發明內容
本發明實施例提供一種內核空間隔離方法、空間管理實體及SMP系統,實現不同CPU核間的內核空間隔離。
有鑑於此,本發明實施例提供 一種內核空間隔離方法,包括
當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間 中的非公共系統空間部分分配該CPU核的私有虛擬空間; 確定所述CPU核的物理空間;
建立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使 得運行在所述CPU核上的內核態業務才艮據所述私有虛擬空間以及所述映射關 系訪問所述物理空間;其中,該CPU核的虛擬空間與其他CPU核的虛擬空間相 互獨立。
一種空間管理實體,包括
確定單元,用於當運行在CPU核上的內核態業務請求物理空間時,在該 CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間,確 定所述CPU核的物理空間,其中,該CPU核的虛擬空間與其他CPU核的虛擬空 間相互獨立;
第一建立單元,用於建立所述CPU核的私有虛擬空間到所述CPU核的物理 空間的映射關係,使得運行在所述CPU核上的內核態業務根據所述私有虛擬 空間以及所述映射關係訪問所述物理空間。
一種對稱多處理SMP系統,該系統包含多個CPU核和私有空間管理實體, 其中
所述私有空間管理實體,用於當運行在CPU核上的內核態業務請求物理 空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有 虛擬空間,確定所述CPU核的物理空間,建立所述CPU核的私有虛擬空間到所 述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據 所述私有虛擬空間以及所述映射關係訪問所述物理空間,其中,該CPU核的 虛擬空間與其他CPU核的虛擬空間相互獨立。
本發明實施例中,每個CPU核對應一個獨立的虛擬空間,當運行在CPU 核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統 空間部分分配該CPU核的私有虛擬空間,確定所述CPU核的物理空間,建立所空間到所述CPU核的物理空間的映射關係,使運行在所述 CPU核上的內核態業務能夠利用該CPU核的私有虛擬空間及已建立的映射關 系訪問該CPU核的物理空間,實現不同CPU核間的內核空間隔離,從而能夠保 證CPU核運行內核態業務的安全性。


圖l是本發明實施例一提供的內核空間隔離方法流程圖2是本發明實施例二提供的內核空間隔離方法流程圖3是本發明實施例提供的內核空間分配第 一示意圖4是本發明實施例提供的內核空間分配第二示意圖5是本發明實施例提供的內核空間分配第三示意圖6是本發明實施例提供的一種建立CPU核的私有虛擬空間到物理空間 的映射方法流程圖7是本發明實施例提供的另 一種建立CPU核的私有虛擬空間到物理空 間的映射方法流程圖8是本發明實施例三提供的在SMP系統上仿真AMP系統的方法流程圖9是本發明實施例四提供的空間管理實體結構示意圖IO是本發明實施例五提供的SMP系統邏輯示意圖。
具體實施例方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行 清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而 不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作 出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明實施例4是供一種內核空間隔離方法,該方法包括當運行在CPU 核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統 空間部分分配該CPU核的私有虛擬空間,確定所述CPU核的物理空間,建立所 述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使得運行在所 述CPU核上的內核態業務能夠#>據所述私有虛擬空間以及所述映射關係訪問 所述物理空間;其中,所述CPU核的虛擬空間與其他CPU核的虛擬空間相互獨 立。使用本發明實施例提供的技術方案,4吏運行在所述CPU核上的內核態業務能夠利用該CPU核的私有虛擬空間及已建立的映射關係找到該CPU核的物 理空間,實現不同CPU核間的內核空間隔離,從而能夠保證CPU核運行內核態
業務的安全性。
實施例一
參閱圖l,本發明實施例一4是供一種內核空間隔離方法,該方法可應用於 SMP系統,其中,該方法包括
AIO、當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛 擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間;其中,該CPU 核的虛擬空間與其他CPU核的虛擬空間相互獨立;
A20、確定所述CPU核的物理空間;
A30、建立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關 系,使得運行在所述CPU核上的內核態業務能夠根據所述私有虛擬空間以及 所述映射關係訪問所述物理空間。
可見,本發明實施例中,每個CPU核對應一個獨立的虛擬空間,當運行 在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非7>共 系統空間部分分配該CPU核的私有虛擬空間,確定所述CPU核的物理空間,建 立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使運行在 所述CPU核上的內核態業務能夠利用該CPU核的私有虛擬空間及已建立的映 射關係訪問該CPU核的物理空間,實現不同CPU核間的內核空間隔離,從而能 夠保證CPU核運行內核態業務的安全性。
實施例二
參閱圖2-5,本發明實施例二提供一種內核空間隔離方法,其中,圖2示 出了內核空間隔離方法的流程圖,圖3-5示出了內核空間分配示意圖,該方法 具體包括
All、系統初始化時,在內核空間中為每個CPU核分配獨立的虛擬空間, 所述虛擬空間包括^^共系統空間。
具體可參見圖3,系統分別為CPU1核和CPU2核分配獨立的虛擬空間,其 中,CPU1核的虛擬空間中的m為/^共系統空間,CPU2核的虛擬空間中的m為 />共系統空間。其中,,I定物理空間包括K和F,其中K是^^共物理空間,用於存放系統的一些公共代碼和數據;K1是K的一部分;F是空閒的物理空間, 系統會記錄空閒的物理空間範圍。需要說明的是,圖3-5示出的是內核空間分 配示意圖,不涉及用戶地址空間。
A21 、建立每個CPU核的公共系統空間到公共物理空間的映射關係。
如圖3和圖4所示,先建立每個CPU核的公共系統空間到K1的映射關係, 然後修改每個CPU核的映射關係,建立每個CPU核的公共系統空間到K的映射 關係。需要說明的是,在另一種實現下,也可以是一次建立即可實現每個CPU 核的公共系統空間到K的映射關係。
A31 、當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛 擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間,根據預先記 錄的空閒的物理空間範圍,為該CPU核分配空閒的物理空間,建立所述CPU 核的私有虛擬空間到所述分配的物理空間的映射關係。
具體如圖5所示,假定運行在CPU1核上的內核態業務和運行在CPU2核上 的內核態業務要請求(或申請)物理空間,系統在CPU1核的虛擬空間中的非 公共系統空間部分為CPUl核分配私有虛擬空間ml,在CPU2核的虛擬空間中 的非公共系統空間部分為CPU2核分配私有虛擬空間m2,並根據預先記錄的空 閒的物理空間範圍,為CPUl核分配空閒物理空間Ml,為CPU2核分配空閒物 理空間M2,為CPUl核建立ml到Ml的映射關係,為CPU2核建立m2到M2的映 射關係。
需要說明的是,該步驟中運行在CPU核上的內核態業務也可以指定物理 空間,而不是由系統自動分配,假定運行在CPU1核上的內核態業務指定物理 空間為M1,系統在CPUl核的虛擬空間中為CPUl核分配私有虛擬空間ml,為 CPUl核建立ml到Ml的映射關係。對於這種情況,可適用於如下情況,包括 但不限於某個內核態業務將對網卡進行相關操作,而對於網卡這類硬體, 系統已分配固定的物理空間(比如M1),此時,運行在CPU1核上的內核態業 務會指定物理空間(即上述固定的物理空間M1 ),系統在CPU1核的虛擬空間 中為CPU1核分配私有虛擬空間ml ,建立ml到指定的M1的映射關係。
進一步需要說明的是,假定有兩個內核態業務將對網卡進行操作,這兩 個內核態業務雖然分別運行在CPU1核和CPU2核上,但這兩個內核態業務可以均指定物理空間Ml,因為這兩個內核態業務相關聯,需要訪問同一物理空間,
系統在CPU1核的虛擬空間中為CPU1核分配私有虛擬空間ml ,在CPU2核的虛 擬空間中為CPU2核分配私有虛擬空間m2,為CPUl核建立ml到Ml的映射,為 CPU2核建立m2到Ml的映射,此時CPU1核和CPU2核是共用物理空間M1的。 即,此時這個物理空間M1不是一個CPU核專有的。
A41 、運行在該CPU核上的內核態業務通過該CPU核的私有虛擬空間,以 及該CPU核的映射關係訪問該CPU核的物理空間,從而使該CPU核的物理空間 被運行在該CPU核上的內核態任務根據該CPU核的私有虛擬空間以及該XPU 核的映射關係進行訪問。
具體可以是,運行在該CPU核上的內核態業務通過該CPU核的私有虛擬空 間,以及該CPU核的映射關係找到該CPU核的物理空間,由該CPU核將內核態 業務的程序映象加載到該物理空間中執行,並將內核態業務綁定在該CPU核 上,從而可以實現該內核態業務被該CPU核獨佔地執行。
即,當CPU1核上的內核態業務綁定到CPU1核上後,該內核態業務只 能在CPU1核上運行,不會跑到其他CPU核上運行,而且如果上述A31中, 為CPU1核分配了空閒的物理空間,其他CPU核上運行的內核態業務也沒有 訪問CPU1核的物理空間的能力,即其他CPU核上運行的內核態業務也不會 加載到CPU1核的物理空間,不會跑到CPU1核上運行,能夠保證CPU1核
運行內核態業務的安全性。
可見,本發明實施例二為每個CPU核分配獨立的虛擬空間,當運行在 CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公 共系統空間部分分配CPU核的私有虛擬空間,建立所述CPU核的私有虛擬 空間到所述CPU核的物理空間的映射關係,使被運行在所述CPU核上的內 核態業務能夠通過該CPU核的私有虛擬空間及上述映射關係訪問該CPU核 的物理空間,實現不同CPU核間的內核空間隔離,從而能夠保證CPU核運
行內核態業務的安全性。
其中,當用戶請求啟動至少兩個特定CPU核上的內核態業務P時,系統 為至少兩個CPU核分配相同的私有虛擬空間和同一物理空間,建立相同的私 有虛擬空間到同一物理空間的映射關係,由所述至少兩個CPU核將內核態業務P的程序映象加栽到該私有物理空間中,以及系統將內核態業務P綁定在 所述至少兩個CPU核上,使該內核態業務能夠通過該私有虛擬空間及上述映目的。
內核地址主要涉及的是空間映射表,空間映射表中包含了虛擬空間地址
的訪問屬性和對應的物理空間地址。現有技術中,在內核態業務與CPU核綁 定後,CPU核運行內核態業務時,需要利用空間映射表將內核空間中的虛擬 地址映射到物理地址。以SMP系統採用具體的CPU,如X86架構CPU核為 例進行說明,當採用X86架構的CPU核時,CPU核採用兩級映射關係,包 括頁目錄和頁表;比如對於某個32位的虛擬地址,該32位地址分為三部分, 第22位到第31位這10位(最高IO位)是頁目錄中的索引,第12位到第 21位這10位是頁表中頁表項的索引,第O位到第11位這12位(低12位) 是頁內偏移。對於一個要轉換成物理地址的虛擬地址,首先根據最高10位, 找到對應的頁目錄項。頁目錄項中有這個虛擬地址所對應頁表的地址。有了 頁表的地址,根據虛擬地址的第12位到第21位這IO位的值作為索引,找到 該頁表中相應的頁表項,頁表項中有這個虛擬地址所對應物理頁的物理地址。 最後用虛擬地址的最低12位,也就是頁內偏移,加上這個物理頁的物理地址, 就得到了該虛擬地址所對應的物理地址。
本發明實施例採用的技術方案是在內核空間為CPU核分配私有的虛擬空 間,相應的為CPU核分配空間以保存CPU核的空間映射表,實現在內核態為 CPU核隔離空間,在內核態業務與CPU核綁定後,該CPU核執行內核態業務時, 利用CPU核的空間映射表,能將CPU核私有的虛擬內存空間映射到物理空間, 因此能夠保證內核態業務(如內核線程)運行的安全性。
參閱圖6,如下描述一種建立CPU核的私有虛擬空間到CPU核的物理空間 的映射關係的方法,包括
Bl、分配CPU核的私有頁目錄空間和私有頁表空間。
該步驟的具體實現方式用_get_free_pages函數為CPU核分配一頁私有頁 目錄空間,確定所分配的CPU核的私有虛擬空間所跨的私有頁表的個數,進 而利用_get_free_pages函lt分配只十應的私有頁表空間。B2 、獲取內核頁目錄作為CPU核的私有頁目錄,存入CPU核的私有頁目
錄空間。
B3、確定CPU核的私有虛擬空間對應的私有頁目錄中的私有頁目錄項。
在步驟B3中,根據CPU核的私有虛擬空間的地址範圍,可以直接確定該 CPU核的私有虛擬空間對應的私有頁目錄項,如果CPU核的私有虛擬空間為 00000000-000FFFFF,則根據高IO位,確定該CPU核的私有虛擬空間對應的私 有頁目錄項為第0條頁目錄項。
B4 、獲取CPU核的私有虛擬空間對應的原內核頁目錄項所指向的原內核 頁表,作為CPU核的私有頁表保存在私有頁表空間。
在步驟B3和步驟B4中,才艮據CPU核的私有虛擬空間的地址範圍,可以直 接確定該CPU核的私有虛擬空間對應的原內核頁目錄項和原內核頁表。續上 述實例,CPU核的私有虛擬空間為00000000-000FFFFF,則根據高10位,確定 該CPU核的私有虛擬空間對應的原內核頁目錄項為第0條目錄項,該第0條目 錄項中保存有對應的原內核頁表的地址,根據原內核頁表的地址,找到對應 的原內核頁表,將該原內核頁表保存到CPU核的私有頁表空間作為CPU核的私 有頁表。
其中,也可以採用其他方式獲得CPU核的私有頁表,比如,通信設備自 己建立私有頁表,該私有頁表中對應CPU核的私有虛擬空間的頁表項指向CPU
核的私有物理空間。
B5、將步驟B3中所確定的私有頁目錄項指向私有頁表空間。
該步驟具體是將所確定的私有頁目錄項中原來保存的內核頁表的物理地 址改為CPU核的私有頁表空間的物理地址。
B6、根據CPU核的私有虛擬空間,將CPU核的私有頁表的相應頁表項指 向CPU核的(私有)物理空間,即將CPU核的私有頁表的相應頁表項內所保存 的物理頁的地址修改為CPU核的私有物理空間的地址。
其中,步驟B5中將所確定的私有頁目錄項指向私有頁表空間,是為了在 後續本CPU核的內核態業務獲取到CPU核的私有頁目錄後,能根據該私有頁目 錄項找到對應的CPU核的私有頁表;CPU核的私有頁表中的頁表項中保存有 CPU核的私有物理空間的地址,利用頁表項所保存的地址,可尋址到該CPU核的私有物理空間。
如果給每個CPU都分配了虛擬空間,則不用執行後續B7,如果只是給一些CPU分配了虛擬空間,而另一些CPU核的內核態業務還需要訪問內核頁表,也就是說這些CPU核的物理空間是共享的,則需要執行步驟B7。
B7、將上述CPU核的虛擬內存空間對應的原內核頁表項的屬性設置為只讀或者不可訪問。
本步驟中將該原內核頁表項的屬性設置為只讀或者不可訪問的目的是在其他CPU核的內核態業務訪問原內核頁表時,由於該原內核頁表項的屬性設置為只讀或者不可訪問,所以其他CPU核不能訪問或不能寫到上述CPU核的物理空間,或者其他CPU核的內核態業務不能加載到上述CPU核的物理空間,從而實現不同核間內核空間隔離的效果。
需要說明的是,如果為CPU核分配的私有虛擬空間比較大,比如恰好是一個頁目錄項所對應的空間時,此時可以確定CPU核的私有虛擬空間對應的原內核頁目錄項,設置該原內核頁目錄項的屬性為只讀或者不可訪問。
可見,本發明實施例中,為CPU核配置了私有頁目錄空間和私有頁表空間,以便後續內核線程能訪問該CPU核的虛擬內存空間,同時為了防止其他非本CPU核的內核線程訪問該CPU核的虛擬內存空間,配置CPU核的虛擬內存空間所對應的原內核頁表項的屬性為只讀或者不可訪問,以實現不同CPU核
間的內核空間隔離的效果。
本發明實施例中,通過利用私有頁目錄和私有頁表,可以實現將CPU核
私有的虛擬空間映射到物理空間,從而能夠保證內核態業務(如內核線程)運行的安全性。
參閱圖7,如下描述另 一種建立CPU核的私有虛擬空間到物理空間的映射關係的方法,該方法與上述描述的方法不同之處在於不用為CPU核分配私有頁表空間,而是利用CPU核的虛擬空間對應的原內核頁表。
C1 、分配CPU核的私有頁目錄空間。
C2 、獲取內核頁目錄作為CPU核的私有頁目錄,存入CPU核的私有頁目
錄空間。
C3 、確定CPU核的私有虛擬空間對應的私有頁目錄中的私有頁目錄項。C4、確定CPU核的私有虛擬空間對應的原內核頁目錄項所指向的原內核頁表。
C5、將私有頁目錄項指向所述CPU核的私有虛擬空間對應的原內核頁表。
該步驟將CPU核的私有虛擬空間對應的私有頁目錄項指向CPU核的私有虛擬空間對應的原內核頁表,是為了後續該CPU核上的內核態業務可以直接利用該原內核頁表。
C6、根據CPU核的私有虛擬空間,查找所述原內核頁表中相應的頁表項,配置所找到的頁表項指向所述CPU核的物理空間。
C7、將該CPU核的私有虛擬空間對應的原內核頁目錄項設置為只讀或者不可i方問。
其中,該方法中不用為CPU核分配私有頁表空間,而是直接使用CPU核的私有虛擬空間對應的原內核頁表。為了使用CPU核的私有虛擬空間對應的原內核頁表,需要將CPU核的私有虛擬空間對應的原內核頁目錄項設置為只讀或者不可訪問,以防止其^M一本CPU核的內核態業務訪問該內核頁目錄項所指向的內核頁表。
可見,本發明實施例中,為CPU核配置了私有頁目錄空間,以^^後續內核線程能訪問該CPU的虛擬內存空間,同時為了防止其他非本CPU核的內核線程訪問該CPU核的虛擬內存空間,配置CPU核的虛擬內存空間所對應的原內核頁目錄項的屬性為只讀或者不可訪問,以實現在內核空間中,不同CPU核間
的內核空間隔離的效果。
請參閱圖8,如下描述利用本發明實施例三提供的內核空間隔離方法,在SMP系統上仿真AMP系統的實現方式。
Dl、將軟體編譯成SMP系統的內核模塊。
D2、部署到具體CPU核加載內核模塊,內核模塊初始化過程中選擇部署的CPU核。
D3、為CPU核劃分獨立的虛擬空間,所述虛擬空間包括公共系統空間。D4、建立所述CPU核的公共系統空間到公共物理空間的映射關係。D5、當運行在該CPU核上的內核態業務(加載內核模塊的過程中所創建的內核線程)請求物理空間時,在所述CPU核的虛擬空間中的非公共系統空間部分分配CPU核的私有虛擬空間,確定所述CPU核的物理空間(這裡的物理
空間可以是CPU核的私有物理空間),建立所述CPU核的私有虛擬空間到物理
空間的映射。
有物理空間的映射找到該CPU核的物理空間,由該CPU核將內核態業務加載到該物理空間中執行,將內核態業務(加載內核模塊的過程中所創建的內核線程)綁定到該CPU核。換言之,即內核模塊運行過程中,利用預置的接口在該CPU核的物理內存空間中進行操作。
可見,本發明實施例中,在SMP系統中,使CPU核上的內核態業務加載到該CPU核的物理空間(該物理空間可以是CPU核的私有物理空間)內執行,即在SMP系統上仿真AMP系統,實現內核態業務運行時4吏用的內存空間其他CPU核不能修改,以保證該CPU核上的內核態業務運行的安全性;進一步,可以使用SMP系統提供的各種管理工具和核間通信功能來管理內核態業務,提高內核態業務的可維護性。
參閱圖9,本發明實施例提供一種空間管理實體,用於當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間,該CPU核的虛擬空間與其他CPU核的虛擬空間相互獨立,並確定所述CPU核的物理空間,建立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據所述私有虛擬空間以及所述映射關係訪問所述物理空間,其中,該空間管理實體包括
確定單元801 ,用於當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間,確定所述CPU核的物理空間,其中,所述CPU核的虛擬空間與其他CPU核的虛擬空間相互獨立;如圖3-5所示;以及,這裡的內核態業務可以是內核線程。
第一建立單元802,用於建立所述CPU核的私有虛擬空間到物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據所述私有虛擬空間以及所述映射關係訪問所述物理空間。
該空間管理實體還包括空間分配單元803,用於在內核空間中,為每個CPU核分配獨立的虛擬空 間,所述虛擬空間包括公共系統空間;需要說明的是,本發明實施例不涉 及用戶地址空間。
第二建立單元804,用於建立所述公共系統空間到公共物理空間的映射關 系。需要說明的是,在一種實現下,第一建立單元802和第二建立單元804可 以集成為一個單元實現;
其中,在一種實現下,所述確定單元801為第一確定單元,用於當運行在 CPU核上的內核態業務請求物理空間時,在所述CPU核的虛擬空間中的非公共 系統空間部分分配CPU核的私有虛擬空間;並分配空閒的物理空間作為所述 CPU核的物理空間;需要說明的是,這裡分配的空閒的物理空間為該CPU核的 私有物理空間;
或者,在另一種實現下,所述確定單元801為第二確定單元,用於當運行 在CPU核上的內核態業務請求指定的物理空間時,在所述CPU核的虛擬空間中 的非公共系統空間部分分配CPU核的私有虛擬空間,確定所述指定的物理空 間為所述CPU核的物理空間。針對這種實現,可適用於如下情況,包括但不 限於某個內核態業務將對網卡進行相關操作,而對於網卡這類硬體,系統 已分配固定的物理空間(比如M1),此時,運行在CPU核上的內核態業務會 指定物理空間(即上述的物理空間M1 )。
以SMP系統釆用具體的CPU,如X86架構CPU核為例進行說明,當採用X86 架構的CPU核時,CPU核採用兩級映射關係的空間映射表,包括頁目錄和頁表;
在一種實現下,本發明實施例中,所述第一建立單元802包括
第一空間分配單元,用於為所述CPU核分配私有頁目錄空間和私有頁表 空間;
第一獲得單元,用於獲得所述CPU核的私有頁目錄,並保存在所述CPU 核的私有頁目錄空間;根據所述CPU核的私有虛擬空間,獲取所述CPU核私有 頁表,並保存在所述CPU核的私有頁表空間;
以及,第 一配置單元,用於確定所述CPU核的私有虛擬空間對應的所述 CPU核的私有頁目錄中的私有頁目錄項,配置所述私有頁目錄項指向所述CPU 核的私有頁表空間;根據所述CPU核的私有虛擬空間,查找所述CPU核的私有頁表中相應的頁表項,配置所找到的頁表項指向所述CPU核的物理空間; 或者,在另一種實現下,所述第一建立單元802包括 第二空間分配單元,用於為所述CPU核分配私有頁目錄空間; 第二獲得單元,用於獲得所述CPU核的私有頁目錄,並保存在所述CPU 核的私有頁目錄空間;
以及,第二配置單元,用於確定所述CPU核的私有虛擬空間對應的所述 CPU核的私有頁目錄中的私有頁目錄項,將所述私有頁目錄項指向所述CPU 核的私有虛擬空間對應的原內核頁表,根據所述CPU核的私有虛擬空間,查 找所述原內核頁表中相應的頁表項,配置所找到的頁表項指向所述CPU核的 物理空間。從而實現,在內核態業務與CPU核綁定後,CPU核運行內核態業務 時,利用空間映射表(私有頁目錄、私有頁表)將內核空間中的虛擬地址映 射到物理地址。
若空間管理實體不是給SMP系統中的每個CPU核分配獨立的虛擬空間, 而是給SMP系統中的部分CPU核分配了獨立的虛擬空間,而另 一些CPU核的內 核態業務還需要訪問原內核頁目錄和頁表,也就是說這些CPU核的物理空間 是共享的,則空間管理實體還包括
第三配置單元,用於配置所述CPU核的私有虛擬空間所對應的原內核頁 表項或者原內核頁目錄項的屬性為只讀或者不可訪問。
其中,配置所述CPU核的私有虛擬空間所對應的原內核頁表項或者原內 核頁目錄項的屬性為只讀或者不可訪問的目的是在其他CPU核的內核態業 務訪問原內核頁表時,由於該原內核頁表項的屬性設置為只讀或者不可訪問, 所以其他CPU核不能訪問或不能寫到上述CPU核的物理空間(私有物理空間), 或者其他CPU核的內核態業務不能加載到上述CPU核的物理空間(私有物理空 間),從而實現SMP系統的不同CPU核間內核空間隔離的效果。
可見,本發明實施例中,為CPU核分配了獨立的虛擬空間,當運行在CPU 核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統 空間部分分配CPU核的私有虛擬空間,建立所述CPU核的私有虛擬空間到所述 CPU核的物理空間的映射關係,使運行在所述CPU核上的內核態業務能夠利用 該CPU核的私有虛擬空間及已建立的映射關係訪問該CPU核的物理空間,實現不同CPU核間的內核空間隔離的效果,從而能夠保證CPU核運行內核態業務的 安全性。
參閱圖IO,為本發明實施例提供一種SMP系統的邏輯示意圖,包括多 個CPU核和被多個CPU核訪問的內存,其中,多個CPU核,如圖10所示,可以 包括第一CPU核、第二CPU核和第三CPU核;以及,本發明實施例的SMP 系統,還包括
所述私有空間管理實體,用於當運行在CPU核上的內核態業務請求物理 空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有 虛擬空間,確定所述CPU核的物理空間,建立所述CPU核的私有虛擬空間到所 述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務4艮據 所述私有虛擬空間和所述映射關係訪問所述物理空間,其中,所述CPU核的 虛擬空間與其他CPU核的虛擬空間相互獨立。
進一步的,本發明實施例的SMP系統還包括公共空間管理實體,用於 在內核空間中為每個CPU核分配獨立的虛擬空間,所述虛擬空間包括公共 系統空間;建立所述公共系統空間到公共物理空間的映射關係;需要說明的 是,私有空間管理實體和公共空間管理實體可以認為是程序,程序通過線程 來執行,故在圖中,不方便示出;以及需要說明的是,私有空間管理實體和 公共空間管理實體可以集成為 一個空間管理實體。
一種實現下,所述私有空間管理實體為第一私有空間管理實體,用於當 運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非 公共系統空間部分分配CPU核的私有虛擬空間,為該CPU核分配空閒的物理空 間(此時該CPU核的物理空間為該CPU核專有),建立該CPU核的私有虛擬空 間到所分配的物理空間的映射關係,使得運行在該CPU核上的內核態業務才艮 據(通過)該CPU核的私有虛擬空間,以及該CPU核的映射關係訪問該CPU 核的物理空間,從而使該CPU核的物理空間被運行在該CPU核上的內核態任務 通過所分配的私有虛擬空間進4亍訪問。
在另一種實現下,所述私有空間管理實體為第二私有空間管理實體,用 於當運行在CPU核上的內核態業務請求指定的物理空間時,在所述CPU核的虛 擬空間中的非公共系統空間部分分配所述CPU核的私有虛擬空間,建立所述CPU核的私有虛擬空間到該內核態業務指定的物理空間的映射關係,使得運
行在該CPU核上的內核態業務通過該CPU核的私有虛擬空間,以及該CPU核的 映射關係訪問該CPU核的物理空間,從而使該CPU核的物理空間被運行在該 CPU核上的內核態任務通過該CPU核的私有虛擬空間進行訪問。
在另一種實現下,所述私有空間管理實體為第三私有空間管理實體,用
於當用戶請求啟動第一CPU核和第二CPU核上的內核態業務時,為所述第一 CPU核和第二CPU核分配相同的私有虛擬空間和同一物理空間,建立私有虛擬 空間到同 一物理空間的映射關係,並由第一CPU核和第二CPU核將該內核態業
務程序加載到該物理空間中,以及,用於將所述內核態業務綁定在所述第一
CPU核和第二 CPU核上,從而實現所述內核態業務被第一CPU核和第二CPU
核執行。
可見,本發明實施例中,SMP系統使CPU核上的內核態業務加載到該CPU 核的物理空間(私有物理空間)內執行,以保證該CPU核上的內核態業務運 行的安全性;進一步,可以使用SMP系統提供的各種管理工具和核間通信功 能來管理AMP內核態業務,提高AMP內核態業務的可維護性。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流 程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於 一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施 例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨4踏^fiH己憶體(Random Access Memory, RAM)等。
以上對本發明實施例所提供的內核空間隔離方法、空間管理實體及系統 進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了 闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同 時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應 用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的 限制。
權利要求
1、一種內核空間隔離方法,其特徵在於,包括當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間;確定所述CPU核的物理空間;建立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據所述私有虛擬空間以及所述映射關係訪問所述物理空間;其中,該CPU核的虛擬空間與其他CPU核的虛擬空間相互獨立。
2、 根據權利l所述的方法,其特徵在於,所述在該CPU核的虛擬空間中 的非公共系統空間部分分配該CPU核的私有虛擬空間的步驟之前,該方法還 包括在內核空間中為所述CPU核分配獨立的虛擬空間,所述虛擬空間包括 7>共系統空間;建立所述公共系統空間到公共物理空間的映射關係。
3、 根據權利l所述的方法,其特徵在於,所述確定所述CPU核的物理空 間為為所述CPU核運行的內核態業務分配空閒的物理空間作為所述CPU核的 物理空間。
4、 根據權利l所述的方法,其特徵在於,所述確定所述CPU核的物理空 間為當運行在CPU核上的內核態業務請求指定的物理空間時,確定所述指定 的物理空間為所述CPU核的物理空間。
5、 根據權利l所述的方法,其特徵在於,所述建立所述CPU核的私有虛 擬空間到所述CPU核的物理空間的映射關係包括為所述CPU核分配私有頁目錄空間和私有頁表空間,獲得所述CPU核的私 有頁目錄,並保存在所述CPU核的私有頁目錄空間,確定所述CPU核的私有虛 擬空間所對應的所述CPU核的私有頁目錄中的私有頁目錄項,根據所述CPU 核的私有虛擬空間,獲取所述CPU核的私有頁表,並保存在所述CPU核的私有 頁表空間,配置所述私有頁目錄項指向所述CPU核的私有頁表空間;根據所述CPU核的私有虛擬空間,查找所述CPU核的私有頁表中的相應的頁表項,配 置所找到的頁表項指向所述CPU核的物理空間。
6、 根據權利l所述的方法,其特徵在於,所述建立所述CPU核的私有虛擬 空間到所述CPU核的物理空間的映射關係包括為所述CPU核分配私有頁目錄空間,獲取所述CPU核的私有頁目錄,並保 存在所述CPU核的私有頁目錄空間,確定所述CPU核的私有虛擬空間對應的所 述CPU核的私有頁目錄中的私有頁目錄項,將所述私有頁目錄項指向所述CPU 核的私有虛擬空間對應的原內核頁表,根據所述CPU核的私有虛擬空間,查 找所述原內核頁表中相應的頁表項,配置所找到的頁表項指向所述CPU核的 物理空間。
7、 才艮據權利5或者6所述的方法,其特徵在於,所述在該CPU核的虛擬空 間中的非公共系統空間部分分配該CPU核的私有虛擬空間的步驟之後,該方 法還包括配置所述CPU核的私有虛擬空間所對應的原內核頁表項或者原內核頁目 錄項的屬性為只讀或者不可訪問。
8、 一種空間管理實體,其特徵在於,包括確定單元,用於當運行在CPU核上的內核態業務請求物理空間時,在該 CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間,確 定所述CPU核的物理空間,其中,該CPU核的虛擬空間與其他CPU核的虛擬空 間相互獨立;第一建立單元,用於建立所述CPU核的私有虛擬空間到所述CPU核的物理空間以及所述映射關係訪問所述物理空間。
9、 根據權利8所述的實體,其特徵在於,所述空間管理實體還包括 空間分配單元,用於為CPU核分配獨立的虛擬空間,所述虛擬空間包括/>共系統空間;第二建立單元,用於建立所述^^共系統空間到7>共物理空間的映射關係。
10、 根據權利8所述的實體,其特徵在於,所述確定單元為第一確定單元,用於當運行在CPU核上的內核態業務請求物理空間時,在所述CPU核的虛擬空間中的非公共系統空間部分分配所述CPU核的私有虛擬空間;並分配空閒的物理空間作為所述CPU核的物理空間; 或者,所述確定單元為第二確定單元,用於當運行在CPU核上的內核態 業務請求指定的物理空間時,在所述CPU核的虛擬空間中的非公共系統空間 部分分配所述CPU核的私有虛擬空間,確定所述指定的物理空間為所述CPU 核的物理空間。
11、 根據權利8、 9或者10所述的實體,其特徵在於, 所述第一建立單元包括第 一 空間分配單元,用於為所述CPU核分配私有頁目錄空間和私有頁表 空間;第一獲得單元,用於獲得所述CPU核的私有頁目錄,並保存在所述CPU 核的私有頁目錄空間;根據所述CPU核的私有虛擬空間,獲得所述CPU核私有 頁表,並保存在所述CPU核的私有頁表空間;第一配置單元,用於確定所述CPU核的私有虛擬空間所對應的所述CPU 核的私有頁目錄中的私有頁目錄項,配置所述私有頁目錄項指向所述CPU核 的私有頁表空間;根據所述CPU核的私有虛擬空間,查找所述CPU核的私有頁 表中相應的頁表項,配置所找到的頁表項指向所述CPU核的物理空間;或者,所述第一建立單元包括第二空間分配單元,用於為所述CPU核分配私有頁目錄空間; 第二獲得單元,用於獲得所述CPU核的私有頁目錄,並保存在所述CPU 核的私有頁目錄空間;第二配置單元,用於確定所述CPU核的私有虛擬空間所對應的所述CPU 核的私有頁目錄中的私有頁目錄項,將所述私有頁目錄項指向所述CPU核的 私有虛擬空間所對應的原內核頁表,根據所述CPU核的私有虛擬空間,查找 所述原內核頁表中相應的頁表項,配置所找到的頁表項指向所述CPU核的物 理空間。
12、 衝艮據權利ll所述的實體,其特徵在於,所述空間管理實體還包括 第三配置單元,用於配置所述CPU核的私有虛擬空間所對應的原內核頁表項或者原內核頁目錄項的屬性為只讀或者不可訪問。
13、 一種對稱多處理SMP系統,其特徵在於,該系統包含多個CPU核和 私有空間管理實體,其中所述私有空間管理實體,用於當運行在CPU核上的內核態業務請求物理 空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有 虛擬空間,確定所述CPU核的物理空間,建立所述CPU核的私有虛擬空間到所 述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據 所述私有虛擬空間以及所述映射關係訪問所述物理空間,其中,該CPU核的 虛擬空間與其他CPU核的虛擬空間相互獨立。
14、 根據權利13所述的系統,其特徵在於,該系統還包括 公共空間管理實體,用於在內核空間中為CPU核分配獨立的虛擬空間,所述虛擬空間包括《^共系統空間;建立所述^^共系統空間到公共物理空間 的映射關係。
15、 才艮據權利13或者14所述的系統,其特徵在於,所述私有空間管理實體為第 一私有空間管理實體,用於當運行在CPU核 上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統空 間部分分配該CPU核的私有虛擬空間,分配空閒的物理空間作為所述CPU核的 物理空間,建立所述私有虛擬空間到所述CPU核的物理空間的映射關係,使 得運行在所述CPU核上的內核態業務根據所述私有虛擬空間以及所述映射關 系訪問所述CPU核的物理空間。
16、 根據權利13或者14所述的系統,其特徵在於,所述私有空間管理實體為第二私有空間管理實體,用於當運行在CPU核 上的內核態業務請求指定的物理空間時,在該CPU核的虛擬空間中的非公共 系統空間部分分配該CPU核的私有虛擬空間,確定所述指定的物理空間為所 述CPU核的物理空間,建立所述CPU核的私有虛擬空間到所述CPU核的物理空 間的映射關係,使得運行在所述CPU核上的內核態業務才艮據所述私有虛擬空 間以及所述映射關係訪問所述CPU核的物理空間。
17、 根據權利13或者14所述的系統,其特徵在於,所述多個CPU核包括 第一CPU核和第二CPU核;所述私有空間管理實體為第三私有空間管理實體,用於當用戶請求啟動第一CPU核和第二CPU核上的內核態業務時,為所述第一CPU核和第二CPU核分配相同的私有虛擬空間和同一物理空間,建立所述私有虛擬空間到所述同一物理空間的映射關係,由所述第一CPU核和第二CPU核將所述內核態業務 加載到所述物理空間中,以及,用於將所述內核態業務綁定到所述第一CPU 核和第二CPU核上。
全文摘要
本發明實施例提供一種內核空間隔離方法、空間管理實體及系統,其中,內核空間隔離方法包括當運行在CPU核上的內核態業務請求物理空間時,在該CPU核的虛擬空間中的非公共系統空間部分分配該CPU核的私有虛擬空間;確定所述CPU核的物理空間;建立所述CPU核的私有虛擬空間到所述CPU核的物理空間的映射關係,使得運行在所述CPU核上的內核態業務根據所述私有虛擬空間以及所述映射關係訪問所述物理空間;其中,該CPU核的虛擬空間與其他CPU核的虛擬空間相互獨立。使用本發明實施例提供的技術方案,實現不同CPU核間的內核空間隔離。
文檔編號G06F9/50GK101477477SQ20091000022
公開日2009年7月8日 申請日期2009年1月12日 優先權日2009年1月12日
發明者戴華飛, 李國柱 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀