根据我的理解,内存映射页面是由文件支持的页面,而不常页面是在没有文件或设备支持的情况下分配的页面。根据此定义,属于共享库的内存页应标记为内存映射,不应标记为匿名。但是,当我为任何进程运行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
有时属于共享库的页面是匿名的吗?
答案 0 :(得分:3)
共享库中的文本和只读数据是内存映射文件。库通常有自己的可写部分(数据和零填充),必须按进程加载,可写,并且不能写回文件。加载后这些是匿名的。
答案 1 :(得分:0)
让我补充一点。在大多数操作系统中,所有用户页面都由文件支持: 1.可执行文件或共享库的只读页面 2.显式内存映射的文件 3.页面文件。
我表达的意见是"匿名页面"的Linux术语。误导。