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模式,分布如下:
I/O Remapping Area:I/O重映射
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
Per-Domain Mappings: 用于每个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、