Linux内核地址空间
内核空间
内核空间是内核负责映射,它并不会跟着进程改变,是固定的。
空间分布
物理内存896MB以上的部分称为高端内存
直接映射区:线性地址=3G+物理地址。
动态映射区:该区域的地址由内核函数数vmalloc来来进行分配,其特点是线性空间连续,但对应的物理空间不一定连续。vmalloc分配的线性地址所对
应的物理页可能处于低端内存,也可能处于高端内存。
永久内存映射区:对于896MB以以上的高端内存,可使用该区域来访问,访问方法:
1.使用alloc_page(__GFP_HIGHMEM)分配高端内存页
2.使用kmap函数将分配到的高端内存映射到该区域。
固定映射区(FixingMappingRegion):PKMap区有上面有4M的的线性空间,被称作固定映射区,它和它和4G顶端只有4K的的隔离带。固定映射区中每个地址项都服务于特定的用途,如ACPI_BASE等。