/proc/xx/maps命令

          最近学习一下linux内核相关的,利用/proc/pid/maps可以查看进程的虚拟空间布局,从而获知当前使用内存的具体分布情况。

[root@localhost ~]# cat /proc/728/maps
556217d91000-556217dcd000 r-xp 00000000 fd:00 559540                     /usr/sbin/chronyd
556217fcd000-556217fce000 r--p 0003c000 fd:00 559540                     /usr/sbin/chronyd
556217fce000-556217fcf000 rw-p 0003d000 fd:00 559540                     /usr/sbin/chronyd
556217fcf000-556217fd0000 rw-p 00000000 00:00 0 
5562182b2000-5562182d3000 rw-p 00000000 00:00 0                          [heap]
7fd860000000-7fd860021000 rw-p 00000000 00:00 0 
7fd860021000-7fd864000000 ---p 00000000 00:00 0 
7fd865761000-7fd865770000 r-xp 00000000 fd:00 88597                      /usr/lib64/libbz2.so.1.0.6
7fd865770000-7fd86596f000 ---p 0000f000 fd:00 88597                      /usr/lib64/libbz2.so.1.0.6
7fd86596f000-7fd865970000 r--p 0000e000 fd:00 88597                      /usr/lib64/libbz2.so.1.0.6
7fd865970000-7fd865971000 rw-p 0000f000 fd:00 88597                      /usr/lib64/libbz2.so.1.0.6

以第一行为例:

556217d91000-556217dcd000 :虚拟地址空间的起始地址和结束地址

 r-xp :此段地址空间的属性,r表示可读,x表示可执行,p表示私有段(s表示共享段)

00000000 :针对有名映射,指本段映射地址在文件中的偏移;对匿名映射,为vm_area_struct->vm_start

fd:00 :所映射的文件所属设备的设备号,其中fd为主设备号,00为次设备号

559540  :文件的索引节点号

/usr/sbin/chronyd :所映射的文件名。有有名映射而言,是映射的文件名。对匿名映射来说,是此段内存在进程中的作用

 

 

 

 

 

 

学习地址:https://blog.csdn.net/lijzheng/article/details/23618365

你可能感兴趣的:(linux)