Skip to content

内存管理

1. 虚拟地址

  • 内核空间
  • 用户空间

2. 物理地址

  • ZONE_DMA
  • ZONE_NORMAL
  • ZONE_HIGHMEN

3. 进程与内存

(1). 代码段

  • 可执行文件的操作指令
  • 防止在运行时被非法修改
  • 只读

(2). 数据段

  • 存放可执行文件中已初始化的全局变量(静态分配变量和全局变量)

(3). BSS段

  • 程序中未初始化的全局变量

(4). 堆heap

  • 程序中被动态分配的内存段
  • 可扩张或缩减
  • Malloc/free

(5). 栈Stack

  • 程序临时创建的局部变量
  • 函数中定义的变量
  • 函数调用时的参数

4. 内核空间

  • 直接映射区
  • 高端内存线性地址空间
  • 动态内存映射区
  • 永久内存映射区
  • 固定映射区

进程占用的用户空间按照“访问属性一致的地址空间存放在一起”的原则,划分为5个不同内存区域,(访问属性:rwx)
包括内核镜像、物理页面表、驱动程序