32位pae模式x86架構下,xen占用了最頂部的64mb的線性位址空間。分布如下:
ioremap_virt_end :0
ioremap_virt_start :ffc00000
directmap_virt_end :ffc00000
directmap_virt_start :ff000000
mapcache_virt_end :ff000000
mapcache_virt_start :fec00000
perdomain_virt_end :ff000000
perdomain_virt_start :fe800000
sh_linear_pt_virt_end :fe800000
sh_linear_pt_virt_start :fe000000
linear_pt_virt_end :fe000000
linear_pt_virt_start :fd800000
rdwr_mpt_virt_end :fd800000
rdwr_mpt_virt_start :fc800000
frametable_virt_end :fc800000
frametable_virt_start :f6800000
ro_mpt_virt_end :f6800000
ro_mpt_virt_start :f5800000
非pae模式,分布如下:
ioremap_virt_end :0
ioremap_virt_start :ffc00000
direct-map: 直接對映區域
directmap_virt_end :ffc00000
directmap_virt_start :ff000000
map cache:對映快取,用於快取domain位址對映
mapcache_virt_end :ff000000
mapcache_virt_start :fec00000
用於每個domain位址對映
perdomain_virt_end :ff000000
perdomain_virt_start :fe800000
shadow linear pagetable: 對映影子頁目錄和頁表
sh_linear_pt_virt_end :fe800000
sh_linear_pt_virt_start :fe400000
guest linear pagetable: 對映當前guest os的頁表結構,包括頁目錄和頁表
linear_pt_virt_end :fe400000
linear_pt_virt_start :fe000000
machine-to-physical translation table(rw): 可寫m2p表,能被xen讀寫,guest os不能訪問
rdwr_mpt_virt_end :fe000000
rdwr_mpt_virt_start :fdc00000
frame-info table: 系統物理頁資訊表,對應frame_table陣列
frametable_virt_end :fdc00000
frametable_virt_start :fc400000
machine-to-physical translation table(ro): 唯讀m2p表,能夠被guest os訪問。
ro_mpt_virt_end :fc400000
ro_mpt_virt_start :fc000000
附:1、xen堆(xenheap)區域即直接對映區域(direct-map),大小為12 mb。xen堆和傳統作業系統的核心相當,在系統初始化時占用了機器實體地址空間的前面12mb。 2、
分配記憶體空間
void calloc size t nobj,size t size 分配足夠的記憶體給nobj個大小為size的物件組成的陣列,並返回指向所分配區域的第乙個位元組的指標 若記憶體不夠,則返回null.該空間的初始化大小為0位元組.char p char calloc 100,sizeof cha...
C 記憶體空間
乙個c 程式編譯後占用的記憶體分為如下幾個部分 棧 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值。在乙個程序中,位於使用者虛擬位址空間頂部的是使用者棧,編譯器用它來實現函式的呼叫。堆 由程式設計師分配和釋放,若程式設計師不釋放,則程式結束時被os 存放由new,malloc分配的記憶體,可...
c 記憶體空間
題目 若char是一位元組,int是4位元組,指標型別是4位元組,如下 class ctest virtual void mem fun private char m chdata int m ndata static char s chdata char ctest s chdata 0 靜態成員...