用户态地址空间
-
text:代码段可执行代码、字符串字面值、只读变量
-
data:数据段,映射程序中已经初始化的全局变量
-
bss:存放程序中未初始化的全局变量
-
heap:运行时的堆,在程序运行中使用 malloc 申请的内存区域
-
mmap:共享库及匿名文件的映射区域
-
stack:用户进程栈
内核态地址空间
-
直接映射区:线性空间中从 3G 开始最大 896M 的区间,为直接内存映射区
-
动态内存映射区:该区域由内核函数 vmalloc 来分配
-
永久内存映射区:该区域可访问高端内存
-
固定映射区:该区域和 4G 的顶端只有 4k 的隔离带,其每个地址项都服务于特定的用途,如:ACPI_BASE 等
进程内存空间
用户进程通常情况只能访问用户空间的虚拟地址,不能访问内核空间虚拟地址
内核空间是由内核负责映射,不会跟着进程变化;内核空间地址有自己对应的页表,用户进程各自有不同额页表