Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

段权限

系统要装入的程序必须至少包含一个可装入段,即使文件格式并不要求此限制也是如此。系统创建可装入段的内存映像时,将会授予如 p_flags 成员中所指定的访问权限。PF_MASKPROC 掩码中包括的所有位都保留用于特定于处理器的语义。

表 13-2  ELF 段标志
名称
含义
PF_X
0x1
执行
PF_W
0x2
PF_R
0x4
PF_MASKPROC
0xf0000000
未指定

如果权限位是 0,则会拒绝该位的访问类型。实际内存权限取决于内存管理单元,该单元可随系统的不同而变化。尽管所有标志组合均有效,但系统仍可授予比请求更多的访问权限。不过,如果不显式指定写权限,则段在任何情况下都不会具有该权限。下表列出了确切的标志解释及允许的标志解释。

表 13-3  ELF 段权限
标志
精确
允许
0
拒绝所有访问
拒绝所有访问
PF_X
1
仅执行
读、执行
PF_W
2
只写
读、写、执行
PF_W + PF_X
3
写、执行
读、写、执行
PF_R
4
只读
读、执行
PF_R + PF_X
5
读、执行
读、执行
PF_R + PF_W
6
读、写
读、写、执行
PF_R + PF_W + PF_X
7
读、写、执行
读、写、执行

例如,典型的文本段具有读和执行权限,但没有写权限。数据段通常具有读、写和执行权限。