之前整理過,進程由操作系統分配4G的虛擬地址空間,虛擬地址空間有兩部分,第一部分是用戶空間,第二部分是內核空間。
在linux下是按照1G內核空間和3G用戶空間來分配的。
從低地址到高地址:
.text 是正文段,保存可執行代碼、只讀變量、字符串變量
.data 是初始化數據段,保存靜態變量全局變量。
.bss 是未初始化數據段,保存未初始化的全局、靜態變量
.heap 是堆,用於程序員動態申請內存。
共享庫 linux就是.so window是.dll
.stack 是棧區,用於編譯器保存臨時數據,比如局部變量,函數調用參數、函數調用棧
命令行參數
環境變量
---------------------下面的就都是內核空間
直接訪問區
常用區
高端內存區