1. 程式人生 > >Linux應用程序地址布局

Linux應用程序地址布局

字符串常量 -s inux 應用 區域 都是 變量 ons 布局

Linux應用程序內存布局

1.從低地址到高地址分別為:代碼段、數據段、BSS段、堆、棧(BSS,Block Started by Symbol,又名:未初始化數據段)

2.堆向高內存地址生長

3.棧向低內存地址生長

技術分享圖片

Linux每個應用程序的起始地址都是0X8048000,是個虛擬地址

數據存放

1.代碼段:代碼,全局常量(const)、字符串常量
2.數據段:全局變量(初始化以及未初始化的)、靜態變量(全局的和局部的、初始化的以及未初始化的)
3.堆:動態分配的區域
4.棧:局部變量(初始化以及未初始化的,但不包含靜態變量)、局部只讀變量(const)

BSS段分析:

readelf -S 程序名

Linux應用程序地址布局