一個可執行程序包含三個部分代碼段:主要存放指令,操作以及只讀的(常量)數據(例如字符串常量)。數據段:全局或者靜態的已經初始化的變量。BSS 段:全局或者靜態的未初始化的變量。
棧上面有1G內存時Linux內核區,與棧之間有一個gap隨機地址,防止代碼***。數據區data與堆區之間也有一個隨機gap。