Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux中共享库的内存映射_Linux_Memory Management_Process - Fatal编程技术网

linux中共享库的内存映射

linux中共享库的内存映射,linux,memory-management,process,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-403

当我使用

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 
我理解.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 
我可以假设r-xp是库的代码部分吗,因为它已经 x(执行)权限

是的,但这称为文本段(存储指令)。您还应该注意,它没有写权限,因为它不应该有写权限

r--p和rw-p是数据段吗

是的,这些段存储静态/全局变量。然而,常量全局变量将被存储到r--p段中,因为它不应该被任何程序修改

空条目呢?例如,关于 libmedia有三个空实体(00:00 0)。这些是什么? 这些可能是保护段(内核插入这些段以保护溢出场景)。“p”表示它是私有的

编辑 有关完整信息,请参阅以下链接:

似乎(至少有些)没有关联文件的部分可能是运行时分配内存的匿名映射。