虚拟地址空间分布

之前整理过,进程由操作系统分配4G的虚拟地址空间,虚拟地址空间有两部分,第一部分是用户空间,第二部分是内核空间。

在linux下是按照1G内核空间和3G用户空间来分配的。

虚拟地址空间分布

从低地址到高地址:
.text 是正文段,保存可执行代码、只读变量、字符串变量
.data 是初始化数据段,保存静态变量全局变量。
.bss 是未初始化数据段,保存未初始化的全局、静态变量
.heap 是堆,用于程序员动态申请内存。
共享库 linux就是.so window是.dll
.stack 是栈区,用于编译器保存临时数据,比如局部变量,函数调用参数、函数调用栈
命令行参数
环境变量
---------------------下面的就都是内核空间
直接访问区
常用区
高端内存区