一、内核页表的存放位置
1. 总体原则
内核页表由内核直接管理:所有页表(包括内核自身和用户进程的页表)的物理存储由内核控制,存放在内核空间对应的物理内存区域。
访问方式:MMU通过寄存器(如x86的CR3、ARM的TTBR0/TTBR1)获取页表物理地址,硬件自动完成地址转换。
2. 不同架构下的实现
ARM32架构
内核页表存放位置:
一级页表(PGD):固定物理地址(如0xc0004000)。
二级页表(PTE):动态分配的物理内存。
关键特性:
低端内存(前896MB)采用线性映射,便于内核直接访问。
内核页表与用户页表分离,进程切换仅替换用户页表。
x86架构
内核页表存放位置:
一级页表(PGD):内核数据段的虚拟地址(如swapper_pg_dir),物理地址由伙伴系统动态分配。
多级页表:全部动态分配。
关键特性:
CR3寄存器指向当前进程的页表物理地址,内核页表常驻内存。
内核虚拟地址空间的高端区域(如x86的0xC0000000以上)保留给内核使用。
ARM64架构
内核页表存放位置:

