内存管理¶
1. 虚拟地址¶
- 内核空间
- 用户空间
2. 物理地址¶
- ZONE_DMA
- ZONE_NORMAL
- ZONE_HIGHMEN
3. 进程与内存¶
(1). 代码段¶
- 可执行文件的操作指令
- 防止在运行时被非法修改
- 只读
(2). 数据段¶
- 存放可执行文件中已初始化的全局变量(静态分配变量和全局变量)
(3). BSS段¶
- 程序中未初始化的全局变量
(4). 堆heap¶
- 程序中被动态分配的内存段
- 可扩张或缩减
- Malloc/free
(5). 栈Stack¶
- 程序临时创建的局部变量
- 函数中定义的变量
- 函数调用时的参数
4. 内核空间¶
- 直接映射区
- 高端内存线性地址空间
- 动态内存映射区
- 永久内存映射区
- 固定映射区
进程占用的用户空间按照“访问属性一致的地址空间存放在一起”的原则,划分为5个不同内存区域,(访问属性:rwx)
包括内核镜像、物理页面表、驱动程序