@note_pic 鸿蒙虚拟内存-用户空间图 从 USER_ASPACE_BASE 至 USER_ASPACE_TOP_MAX 鸿蒙源码分析系列篇: https://blog.csdn.net/kuangyufei https://my.oschina.net/u/3751245 | /\ | | || | |---------------------------|内核空间结束位置KERNEL_ASPACE_BASE + KERNEL_ASPACE_SIZE | | | 内核空间 | | | | | |---------------------------|内核空间开始位置 KERNEL_ASPACE_BASE | | | 16M 预留 | |---------------------------|用户空间栈顶 USER_ASPACE_TOP_MAX = USER_ASPACE_BASE + USER_ASPACE_SIZE | | | stack区 自上而下 | | | | || | | || | | || | | \/ | | | |---------------------------|映射区结束位置 USER_MAP_BASE + USER_MAP_SIZE | 映射区 (文件,匿名,I/O映射) | | | | | | 共享库 .so | | | | L1/L2页表 | |---------------------------|映射区开始位置 USER_MAP_BASE = (USER_ASPACE_TOP_MAX >> 1) | | | | | /\ | | || | | || | | || | | | | heap区 自下而上 | | | |---------------------------|用户空间堆区开始位置 USER_HEAP_BASE = USER_ASPACE_TOP_MAX >> 2 | | | .bss | | .data | | .text | |---------------------------|用户空间开始位置 USER_ASPACE_BASE = 0x01000000UL | | | 16M预留 | |---------------------------|虚拟内存开始位置 0x00000000
在文件 los_vm_common.h 中定义.