码迷,mamicode.com
首页 > 系统相关 > 详细

Linux应用程序地址布局

时间:2018-08-13 18:09:49      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:数据   ima   字符   只读   静态变量   虚拟地址   全局变量   alt   全局   

 Linux应用程序内存布局

1.从低地址到高地址分别为:代码段、数据段、BSS段、堆、栈(BSS,Block Started by Symbol,又名:未初始化数据段)

2.堆向高内存地址生长

3.栈向低内存地址生长

技术分享图片

Linux每个应用程序的起始地址都是0X8048000,是个虚拟地址

数据存放

1.代码段:代码,全局常量(const)、字符串常量
2.数据段:全局变量(初始化以及未初始化的)、静态变量(全局的和局部的、初始化的以及未初始化的)
3.堆:动态分配的区域
4.栈:局部变量(初始化以及未初始化的,但不包含静态变量)、局部只读变量(const)

BSS段分析:

readelf -S 程序名

 

Linux应用程序地址布局

标签:数据   ima   字符   只读   静态变量   虚拟地址   全局变量   alt   全局   

原文地址:https://www.cnblogs.com/payne1991/p/9469589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!