免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2025 | 回复: 5
打印 上一主题 下一主题

[文件系统] 文件映射权限 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-19 17:37 |只看该作者 |倒序浏览
cat /proc/{$pid}/maps,查看进程文件映射时,看到一些映射权限为---p,这种类型的映射还不少。请问下,这种不可读和不可写和不可执行有什么实际作用?

论坛徽章:
0
2 [报告]
发表于 2014-06-20 08:06 |只看该作者
这个区域主要pthread_create时加的保护页,如果越界则会报告错误。

论坛徽章:
0
3 [报告]
发表于 2014-06-20 09:58 |只看该作者
我的需求为,我想知道由malloc使用占用了多少内存,glibc的实现小块内存分配是调节堆顶地址,大块内存是内存映射文件。
cat /proc/{$pid}/maps查看某些没有显示映射文件的(匿名映射)这种映射,并且权限为rw的,应该可以看成是malloc的。是么?

论坛徽章:
0
4 [报告]
发表于 2014-06-20 13:08 |只看该作者
你到底问属性为---p的页,还是rw的页,我之前的回答是针对---p的。rw的匿名页很正常。
这些p属性的保护页,一般位于线程栈的末尾, 而线程栈的分配,一般是靠mmap分出来的。
具体见c库的allocate_stack函数,流程抽离出来就是:
static int
allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
                ALLOCATE_STACK_PARMS)
{
void *mem;
mem = mmap (NULL, size, prot,
                      MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
char *guard = mem;
mprotect (guard, guardsize, PROT_NONE)  //映射为---p属性
}

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
5 [报告]
发表于 2014-06-23 08:46 |只看该作者
这样应该是不准确的,比如一些段是用来映射库文件的,属性还是rw。

论坛徽章:
0
6 [报告]
发表于 2014-06-23 11:56 |只看该作者
嗯,不应该在一个标题下,掺和两个问题的。--p这些属性的页,应该是保护页,比如线程栈或mmap操作的保护区域。后面加了一问,现在懂了,下次会注意提问的。回复 4# chenyu105


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP