寫在前面
- 博文內容為 使用
BPF
工具跟蹤 Linux 用戶態小內存分配(brk,sbrk) - 理解不足小伙伴幫忙指正 ??,生活加油
我看遠山,遠山悲憫
持續分享技術干貨,感興趣小伙伴可以關注下 _
brk 內存分配簡單概述
一般來說,應用程序的數據存放于堆內存
中,堆內存通過brk(2)
系統調用進行擴展,對于比較常見的 libc
分配器的 malloc
等函數,在內存分配,小內存塊使用 brk
分配,一般在空閑列表耗盡時,會上移堆頂指針
,擴展虛擬地址空間
,對于大塊內存
,直接調用我們上篇博文講的 mmap
方式,創建獨立的內存段
,一般按頁對齊
,直接映射進程虛擬地址空間
。
通過跟蹤 brk(2)
調用,可以展示對應的用