栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

了解Linux / proc / id / maps

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解Linux / proc / id / maps

中的每一行都

/proc/$PID/maps
描述了进程或线程中连续虚拟内存的区域。每行都有以下字段:

addressperms offset  dev   inode   pathname08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
  • 地址 -这是进程地址空间中区域的开始和结束地址
  • 权限 -描述如何访问区域中的页面。有四种不同的权限:读取,写入,执行和共享。如果禁用了读/写/执行,
    -
    将显示a而不是
    r
    /
    w
    /
    x
    。如果区域不 共享的 ,它是 私人 ,所以
    p
    会出现,而不是一个
    s
    。如果该进程尝试以不允许的方式访问内存,则会产生分段错误。可以使用
    mprotect
    系统调用来更改权限。
  • offset- 如果是从文件映射区域(使用
    mmap
    ),则这是映射开始的文件中的偏移量。如果内存不是从文件映射的,则仅为0。
  • 设备 -如果该区域是从文件映射的,则这是文件所在的主要和次要设备编号(十六进制)。
  • 索引节点 -如果该区域是从文件映射的,则为文件号。
  • pathname- 如果区域是从文件映射的,则这是文件的名称。对于匿名映射区域,此字段为空白。此外还有一些与名特殊地区,如
    [heap]
    [stack]
    [vdso]
    [vdso]
    代表虚拟动态共享对象。系统调用使用它来切换到内核模式。
    您可能会注意到很多匿名区域。这些通常由
    mmap
    但不附加到任何文件创建。它们用于许多其他事情,例如共享内存或未在堆上分配的缓冲区。例如,我认为pthread库使用匿名映射的区域作为新线程的堆栈。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号