共享库页面是匿名的吗?

时间:2015-05-07 23:56:02

标签: c linux memory-management linux-kernel kernel

根据我的理解,内存映射页面是由文件支持的页面,而不常页面是在没有文件或设备支持的情况下分配的页面。根据此定义,属于共享库的内存页应标记为内存映射,不应标记为匿名。但是,当我为任何进程运行pmap时,我发现有一些内存范围由文件支持,但它们是匿名页面

     Address Perm   Offset Device    Inode   Size   Rss   Pss Shared_Clean Shared_Dirty Private_Clean Private_Dirty Referenced Anonymous AnonHugePages Swap KernelPageSize MMUPageSize Locked                   VmFlagsMapping
7f9677dca000 rw-p 0005b000  08:01 73931708      4     4     4            0            0             0             4          4         4             0    0              4           4      0    rd wr mr mw me ac sd  libibus-1.0.
so.5.0.505

有时属于共享库的页面是匿名的吗?

2 个答案:

答案 0 :(得分:3)

共享库中的文本和只读数据是内存映射文件。库通常有自己的可写部分(数据和零填充),必须按进程加载,可写,并且不能写回文件。加载后这些是匿名的。

答案 1 :(得分:0)

让我补充一点。在大多数操作系统中,所有用户页面都由文件支持: 1.可执行文件或共享库的只读页面 2.显式内存映射的文件 3.页面文件。

我表达的意见是"匿名页面"的Linux术语。误导。