jia*_*wen 5 linux memory-management process
当我使用时查看进程的内存映射
cat/proc/pid/maps
有这样的条目:
40321000-40336000 r-xp 00000000 b3:15 875 /system/lib/libm.so
40336000-40337000 r--p 00014000 b3:15 875 /system/lib/libm.so
40337000-40338000 rw-p 00015000 b3:15 875 /system/lib/libm.so
40338000-40345000 r-xp 00000000 b3:15 789 /system/lib/libcutils.so
40345000-40346000 r--p 0000c000 b3:15 789 /system/lib/libcutils.so
40346000-40347000 rw-p 0000d000 b3:15 789 /system/lib/libcutils.so
40347000-40355000 rw-p 00000000 00:00 0
40355000-403bc000 r-xp 00000000 b3:15 877 /system/lib/libmedia.so
403bc000-403bd000 ---p 00000000 00:00 0
403bd000-403d0000 r--p 00067000 b3:15 877 /system/lib/libmedia.so
403d0000-403d1000 rw-p 0007a000 b3:15 877 /system/lib/libmedia.so
403d1000-403d5000 rw-p 00000000 00:00 0
403d5000-403d8000 rw-p 00000000 00:00 0
Run Code Online (Sandbox Code Playgroud)
我理解.so表示进程映射的共享库.似乎每个.so有3个条目,他们的权限是r-xp r - p rw-p
那么我该怎么解释呢?我可以假设r-xp是库的代码部分,因为它具有x(执行)权限吗?r-p和rw-p怎么样,它们是数据部分吗?
空条目怎么样?例如,关于libmedia的最后6个条目有三个空的entires(00:00 0).这些是什么?
403bc000-403bd000 ---p 00000000 00:00 0
403bd000-403d0000 r--p 00067000 b3:15 877 /system/lib/libmedia.so
403d0000-403d1000 rw-p 0007a000 b3:15 877 /system/lib/libmedia.so
403d1000-403d5000 rw-p 00000000 00:00 0
403d5000-403d8000 rw-p 00000000 00:00 0
Run Code Online (Sandbox Code Playgroud)
我可以假设 r-xp 是库的代码部分,因为它具有 x(执行)权限吗?
是的,但这称为文本段(存储指令)。您还应该注意,它没有写权限,因为它不应该有。
r--p 和 rw-p 怎么样,它们是数据部分吗?
是的,这些段存储静态/全局变量。然而,常量全局变量将存储在 r--p 段中,因为任何程序都不能修改它。
空条目怎么办?例如,有关 libmedia 的最后 6 个条目有 3 个空整数 (00:00 0)。这些是什么?这些可能是保护段(内核插入这些段以保护溢出情况)。“ p”表示它是私有的。
编辑 有关完整信息,您可能需要参考以下链接:
http://linux.die.net/man/5/proc
归档时间: |
|
查看次数: |
3031 次 |
最近记录: |