Linux内存映像

地址范围存储位置
0xC0000000-0xFFFFFFFF (3~4GB)内核虚拟存储器(内核空间)
0x00000000-0xC0000000 (0~3GB)程序三大段 (用户空间)

程序三大段

类别中文作用
dataStack栈(向上增长)存放函数形参和局部变量(auto类型),由编译器自动分配和释放
dataHeap堆(向下增长)动态申请内存
datastatic data全局/静态存储区已初始化的全局变量和静态变量(静态全局变量与静态局部变量),只读常量
bss.bss未初始化的全局变量和静态变量,此段不存数据,只管理变量的地址
textprogram程序代码区存放程序的二进制代码,内存由系统管理

程序五大分区

分区说明
(函数形参、局部变量、返回地址、返回数据) 等临时变量存储位置
(malloc、calloc、realloc)产生的内存块
全局存储区已初始化的全局变量和由static 修饰的静态变量
常量存储区const修饰的常量
程序代码区存放函数体(类成员函数和全局函数)的二进制代码

区别

三大段属于程序结构。五大分区属于程序存储位置。

Logo

更多推荐