线性地址空间的特征:

  • 进程的地址空间由允许进程使用的全部线性地址组成
  • 每个进程的线性地址空间是独立的
  • 内核通过线性区表示线性地址区间
  • 线性区由起始地址、长度和访问权限来描述
  • 线性区的长度和起始地址必须是4096的倍数(4K对齐)

进程获得新线性区的典型情况:

  • 创建新的进程,分配全新的地址空间
  • 正在运行的进程装入一个完全不同的程序(exec系列函数)
  • 正在运行的进程对一个文件执行内存映射(mmap)
  • 进程持续像用户态栈增加数据
  • 进程创建一个IPC共享线性区和其他进程共享内存
  • 进程通过malloc()之类的函数扩展动态内存区,最终是通过系统调用brk()mmap()进行内存分配的