本文主要是介绍OK6410A 开发板 (八) 98 linux-5.11 OK6410A glibc提供的mmap与linux中的 sys_mmap的联动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
按道理用户空间通过 mmap 提出了需求,用户提出的需求分类1.共享文件映射2.私有文件映射3.共享匿名映射4.私有匿名映射内核要满足需求,就要做事情对于 需求 1 2内核要做 A.虚拟地址的申请 B.物理地址的申请 C.映射关系的建立 D.磁盘文件内容加载到物理内存对于 需求 3 4内核要做 A.虚拟地址的申请 B.物理地址的申请 C.映射关系的建立内核实际上是按照两个步骤做的这些内容 (不管是做ABCD还是ABC) 1. sys_mmap阶段2. 访存阶段
xx文件映射 是为了访问 磁盘中的文件私有文件映射(访问动态共享库,为什么不共享呢)共享文件映射(读写文件,文件可被多个共享(一个读一个写).还有一种用途是通信)
xx匿名映射 是为了使用 内存 // 匿名是不是就是没有文件名的意思,是文件的反义共享匿名映射(通过内存通信,父子进程共享内存)私有匿名映射(直接使用内存,malloc)
私有xx映射 是 只有一个进程会访问私有文件映射(单进程内访问动态共享库,为什么不共享呢)私有匿名映射(单进程的malloc)
共享xx映射 是为了使用 内存共享匿名映射(父子进程共享)共享文件映射(多个没关系的进程共享)
这篇关于OK6410A 开发板 (八) 98 linux-5.11 OK6410A glibc提供的mmap与linux中的 sys_mmap的联动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!