问题描述
我试图了解mmap如何与共享内存相关联。 MAP_SHARED标志是否禁用写时复制?因为如果是这样,任何恶意进程都可能会更改共享库。 谢谢。
解决方法
是的,当使用MAP_SHARED标志时,写入时不应有任何副本-如果您写入映射的位置,则使用该映射的其他进程将看到对映射的所有更改,并且最终备份文件将也要进行更新。话虽如此,我相信共享库通常是由动态加载程序通过MAP_PRIVATE(使用写页面上的副本进行更新)映射的,如another answer here中所述。
我试图了解mmap如何与共享内存相关联。 MAP_SHARED标志是否禁用写时复制?因为如果是这样,任何恶意进程都可能会更改共享库。 谢谢。
是的,当使用MAP_SHARED标志时,写入时不应有任何副本-如果您写入映射的位置,则使用该映射的其他进程将看到对映射的所有更改,并且最终备份文件将也要进行更新。话虽如此,我相信共享库通常是由动态加载程序通过MAP_PRIVATE(使用写页面上的副本进行更新)映射的,如another answer here中所述。