输出Linux / proc / <pid> / maps的详细信息

在下面,你可以看到我运行的wu-ftpd的'cat proc / pid / maps'输出:

00400000-00427000 r-xp 00000000 ca:01 64883 /usr/sbin/wu-ftpd 00626000-00627000 r--p 00026000 ca:01 64883 /usr/sbin/wu-ftpd 00627000-00629000 rw-p 00027000 ca:01 64883 /usr/sbin/wu-ftpd 00629000-00644000 rw-p 00000000 00:00 0 0245f000-02480000 rw-p 00000000 00:00 0 [heap] 7f1db9d70000-7f1db9d7c000 r-xp 00000000 ca:01 483644 /lib/x86_64-linux-gnu/libnss_files-2.15.so 7f1db9d7c000-7f1db9f7b000 ---p 0000c000 ca:01 483644 /lib/x86_64-linux-gnu/libnss_files-2.15.so 7f1db9f7b000-7f1db9f7c000 r--p 0000b000 ca:01 483644 /lib/x86_64-linux-gnu/libnss_files-2.15.so 7f1db9f7c000-7f1db9f7d000 rw-p 0000c000 ca:01 483644 /lib/x86_64-linux-gnu/libnss_files-2.15.so 7f1db9f7d000-7f1db9f7f000 r-xp 00000000 ca:01 483655 /lib/x86_64-linux-gnu/libdl-2.15.so 7f1db9f7f000-7f1dba17f000 ---p 00002000 ca:01 483655 /lib/x86_64-linux-gnu/libdl-2.15.so 7f1dba17f000-7f1dba180000 r--p 00002000 ca:01 483655 /lib/x86_64-linux-gnu/libdl-2.15.so 7f1dba180000-7f1dba181000 rw-p 00003000 ca:01 483655 /lib/x86_64-linux-gnu/libdl-2.15.so 7f1dba181000-7f1dba336000 r-xp 00000000 ca:01 483640 /lib/x86_64-linux-gnu/libc-2.15.so 7f1dba336000-7f1dba536000 ---p 001b5000 ca:01 483640 /lib/x86_64-linux-gnu/libc-2.15.so 7f1dba536000-7f1dba53a000 r--p 001b5000 ca:01 483640 /lib/x86_64-linux-gnu/libc-2.15.so 7f1dba53a000-7f1dba53c000 rw-p 001b9000 ca:01 483640 /lib/x86_64-linux-gnu/libc-2.15.so 7f1dba53c000-7f1dba541000 rw-p 00000000 00:00 0 7f1dba541000-7f1dba54d000 r-xp 00000000 ca:01 482456 /lib/x86_64-linux-gnu/libpam.so.0.83.0 7f1dba54d000-7f1dba74d000 ---p 0000c000 ca:01 482456 /lib/x86_64-linux-gnu/libpam.so.0.83.0 7f1dba74d000-7f1dba74e000 r--p 0000c000 ca:01 482456 /lib/x86_64-linux-gnu/libpam.so.0.83.0 7f1dba74e000-7f1dba74f000 rw-p 0000d000 ca:01 482456 /lib/x86_64-linux-gnu/libpam.so.0.83.0 7f1dba74f000-7f1dba758000 r-xp 00000000 ca:01 483641 /lib/x86_64-linux-gnu/libcrypt-2.15.so 7f1dba758000-7f1dba958000 ---p 00009000 ca:01 483641 /lib/x86_64-linux-gnu/libcrypt-2.15.so 7f1dba958000-7f1dba959000 r--p 00009000 ca:01 483641 /lib/x86_64-linux-gnu/libcrypt-2.15.so 7f1dba959000-7f1dba95a000 rw-p 0000a000 ca:01 483641 /lib/x86_64-linux-gnu/libcrypt-2.15.so 7f1dba95a000-7f1dba988000 rw-p 00000000 00:00 0 7f1dba988000-7f1dba9aa000 r-xp 00000000 ca:01 483652 /lib/x86_64-linux-gnu/ld-2.15.so 7f1dbab9e000-7f1dbaba2000 rw-p 00000000 00:00 0 7f1dbaba8000-7f1dbabaa000 rw-p 00000000 00:00 0 7f1dbabaa000-7f1dbabab000 r--p 00022000 ca:01 483652 /lib/x86_64-linux-gnu/ld-2.15.so 7f1dbabab000-7f1dbabad000 rw-p 00023000 ca:01 483652 /lib/x86_64-linux-gnu/ld-2.15.so 7fff20555000-7fff20576000 rw-p 00000000 00:00 0 [stack] 7fff205fe000-7fff20600000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 

有一些内存范围,例如:

  • 00629000-00644000(第4行)或
  • 7f1dba95a000-7f1dba988000(21行之后/lib/x86_64-linux-gnu/libcrypt-2.15.so)

没有描述(像堆,堆栈或共享库)。 这些地区是什么? 他们用什么?

谢谢!

    这些都是匿名映射,由MAP_ANONYMOUS标志由mmap()创建。 在这种情况下,它们可能对应于映射二进制文件的BSS段(例如,第一个是/usr/sbin/wu-ftpd的BSS段)。

    BSS是静态分配的初始化为零的对象被映射的地方 – 这是一个不占用二进制本身空间的分段,因为没有必要存储一堆零。

    也可以使用malloc()进行大量分配产生匿名映射 – 从堆中满足小的分配,但大的分配通常会得到自己的匿名映射。