ARM64架构处理器采用48位物理寻址机制,最大能够寻找到256TB的物理地址空间。对于目前的应用来讲已经足够了,不须要扩展到64位的物理地址寻址。虚拟地址也一样最大支持48位支持,因此在处理器的架构设计上,把虚拟地址空间划分为两个空间,每一个空间最大支持256TB。Linux内核在大多数体系结构中都把两个地址空间划分为用户空间和内核空间。架构
用户空间:0x0000_0000_0000_0000到0x0000_ffff_ffff_ffff布局
内核空间:0xffff_0000_0000_0000到0xffff_ffff_ffff_ffff架构设计
64位的Linux内核已经没有高端内存的概念了,由于48位的寻址空间已经足够大了设计
在QEMU实验平台上,ARM64架构的LInux内核的内存分布图以下:orm
如图所示,ARM64架构处理器的Linux内核内存布局图。ARM64架构处理器的Linux内核内存布局以下:blog
(1)用户空间:0x0000_0000_0000_0000到0x0000_ffff_ffff_ffff,一共有256TB。内存
(2)非规范区域扩展
(3)内核空间:0xffff_0000_0000_0000到0xffff_ffff_ffff_ffff。一共有256TB。map
内核空间又作了以下细分:im