文章目录
一、do_mmap 函数执行流程
二、do_mmap 函数源码
调用 mmap 系统调用 , 先检查 " 偏移 " 是否是 " 内存页大小 " 的 " 整数倍 " , 如果偏移是内存页大小的整数倍..., 则调用 sys_mmap_pgoff 函数 , 继续向下执行 ;
在 sys_mmap_pgoff 系统调用函数 中 , 最后调用了 vm_mmap_pgoff 函数 , 继续向下执行 ;
在 vm_mmap_pgoff...函数 中 , 核心处理过程就是调用 do_mmap 函数 , 这是 " 内存映射 " 创建的主要函数逻辑 ;
一、do_mmap 函数执行流程
----
do_mmap 函数 , 主要功能是 创建 "...内存映射 " ;
首先 , 执行 get_unmapped_area 函数 , 获取未被映射的内存区域 , 根据不同的情况 , 如 " 文件映射 " 还是 " 匿名映射 " , 调用对应的 " 分配虚拟地址区间...(file && path_noexec(&file->f_path)))
prot |= PROT_EXEC;
if (!