linux的memmap函数_linux /proc下的statm、maps、memmap 内存信息文件分析
ls /proc 能看到一些數字命名的文件夾,這些數字就是對于進程的pid
[[email?protected] proc]# cat /proc/1/statm
487 185 133 31 0 67 0
很簡單地返回7組數字,每一個的單位都是一頁 (常見的是4KB)
分別是
size:任務虛擬地址空間大小
Resident:正在使用的物理內存大小
Shared:共享頁數
Trs:程序所擁有的可執行虛擬內存大小
Lrs:被映像倒任務的虛擬內存空間的庫的大小
Drs:程序數據段和用戶態的棧的大小
dt:臟頁數量
接下來看看maps
[[email?protected] proc]# cat /proc/1/maps
00110000-00111000 r-xp 00110000 00:00 0 ? ? ? ? ?[vdso]
0032b000-00347000 r-xp 00000000 fd:00 852733 ? ? /lib/ld-2.8.so
00347000-00348000 r--p 0001c000 fd:00 852733 ? ? /lib/ld-2.8.so
00348000-00349000 rw-p 0001d000 fd:00 852733 ? ? /lib/ld-2.8.so
0034b000-004ae000 r-xp 00000000 fd:00 852734 ? ? /lib/libc-2.8.so
004ae000-004b0000 r--p 00163000 fd:00 852734 ? ? /lib/libc-2.8.so
004b0000-004b1000 rw-p 00165000 fd:00 852734 ? ? /lib/libc-2.8.so
004b1000-004b4000 rw-p 004b1000 00:00 0
08048000-08067000 r-xp 00000000 fd:00 843075 ? ? /sbin/init
08067000-08068000 rw-p 0001e000 fd:00 843075 ? ? /sbin/init
08b42000-08b6a000 rw-p 08b42000 00:00 0 ? ? ? ? ?[heap]
b8046000-b8048000 rw-p b8046000 00:00 0
bfb4e000-bfb63000 rw-p bffeb000 00:00 0 ? ? ? ? ?[stack]
一共有6列
第一列代表內存段的虛擬地址
第二列代表執行權限,r,w,x不必說,p=私有 s=共享
不用說,heap和stack段不應該有x,否則就容易被xx,不過這個跟具體的版本有關
第三列代表在進程地址里的偏移量
第四列映射文件的主設備號和次設備號
通過 cat /proc/devices
得知fd是253 device-mapper
第五列映像文件的節點號,即inode
第六列是映像文件的路徑
以前我很奇怪怎么會有兩個相同的文件路徑,原來
08048000-08067000 r-xp 00000000 fd:00 843075 ? ? /sbin/init
08067000-08068000 rw-p 0001e000 fd:00 843075 ? ? /sbin/init
一個是只讀的,是代碼段,一個是讀寫的,是數據段
至于為什么共享庫分成了三個
0034b000-004ae000 r-xp 00000000 fd:00 852734 ? ? /lib/libc-2.8.so
004ae000-004b0000 r--p 00163000 fd:00 852734 ? ? /lib/libc-2.8.so
004b0000-004b1000 rw-p 00165000 fd:00 852734 ? ? /lib/libc-2.8.so
其中的004ae000-004b0000 r--p 00163000 fd:00 852734 ? ? /lib/libc-2.8.so
還是不能理解
最后看看神秘的memmap
可惜不是所有的版本都有這個文件,如同我這里的情況
只有口頭說一說了,memmap需要和maps配合看
顯示出來的每一行代表maps里的一個段
每一行的每一個數字,代表那個段里的一個頁,段有多大,一行就有對應的多少個數字
如果這個數字是0,代表系統為其分配了虛擬內存,但是沒有分配物理內存
如果有數字,則代表系統為其分配了物理內存,以及有多少個進程引用了這個頁
當然,不會有負數出現
總結
以上是生活随笔為你收集整理的linux的memmap函数_linux /proc下的statm、maps、memmap 内存信息文件分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行流水是不是全国都可以打
- 下一篇: vmlinux 反汇编_ARM Linu