1. 程式人生 > >操作系統-內存管理

操作系統-內存管理

系統-內存管理 內存管理-根本

《黑客攻防寶典-系統實戰篇》第二版摘取。

當執行程序時, 程序體有序的排列在內存裏,操作系統在內存裏為程序運行創建地址空間,地址空間包含著實際程序指令和需要的數據。
1.程序可執行文件被操作系統加載到地址空間。程序一般包含三種類的段: .text、.bass、.data。
.text段在內存中被映射為只讀。
.data和.bass被映射為可寫。
全局變量一般保存在.bass和.data段裏.
.data段包含靜態初始化的數據,
.bass段包含未初始化的數據。
.text段包含程序指令。

加載完成後,為程序初始化"棧"和"堆"

"棧"是一種“後進先出”的數據結構,棧適合保存暫時性的信息,不需要長期保存的信息,即用於保存局部變量、函數調用信息以及

其他調用函數後系統通常會清除的信息.棧的地址空間"向下減少",即是保存的數據越多,棧的地址的值就越小。

"堆"是一種“先進先出”的數據結構,堆保存的是程序的動態變量。可以在堆的一端插入數據,從另一端移走數據。堆的地址空間是“向上增加”的,即是保存的數據越多。堆地址的值就越大。

操作系統-內存管理