对应场景
1) so 映射的 rw的数据段,bss段
2)私有文件映射,如脏牛漏洞例子
3) 一些不希望修改源文件的场景,可能某些调试和trace场景需要,如/proc/pid/mem
流程
do_cow_fault
- alloc_page_vma 分配cow_page
- __do_fault 从原文件将页面读出来,内容存放在文件的page cache上面,即address_space的页面上面
- 将page cache页面拷贝到 cow_page上面
- finish_fault 建立cow_page和虚拟物理页面的页表映射,后续读写发生在cow_page 上面

疑问
直接写文件映射的vma属性和 so的rw段的映射属性关系?
实测实验:
- 写只读代码段
- 写rw bss
- 直接写文件
参考学习资料
https://www.anquanke.com/post/id/257350
本文探讨了文件映射的VMA属性与SO中的rw数据段和bss段的关系,包括私有文件映射如脏牛漏洞案例,以及不修改源文件的应用场景。核心流程涉及do_cow_fault、alloc_page_vma和finish_fault,实测通过写只读代码段、rwbss和直接写文件来揭示它们的内在联系。
1805

被折叠的 条评论
为什么被折叠?



