内核中把物理内存的低端区域作为直接映射区,高地址区域定义为高端内存,通过一个变量high_memory来界定他们的分界线。high_memory是一个虚拟地址,定义了高端内存被允许映射到内核的起始地址。
它在arm平台上的定义如下:
void * high_memory;
EXPORT_SYMBOL(high_memory);
arm_lowmem_limit = lowmem_limit;
high_memory = __va(arm_lowmem_limit - 1) + 1;
if (!memblock_limit)
memblock_limit = arm_lowmem_limit;