系统调用mmap
- 系统调用mmap用来创建内存映射,把创建内存映射主要工作委托给do_mmap函数,内核源码文件处理 :mm/mmap.c
- 虚拟内存区域使用其实地址和结束地址描述,链表按起始地址递增排序。
- 红黑树是自动平衡二叉树好处有1.查询方便,2.插入的时候避免全链表扫描
-
区别 在于: mmap 指定便宜的单位是字节,而mmap2 指定的单位是页。ARM64架构实现系统调用mmap
sys_mmap 过程如下: 检查偏移是不是页的整数倍(如果偏移不是页的整数倍,直接返回-EINVAL,如果偏移是页的整数倍,那么把偏移转成页为单位的偏移,然后调用下面函数sys_mmap_pgof