当前位置: 首页 > news >正文

内核常见问题汇总

1. mmap如何将物理地址返回给用户空间

可以从mmap实现原理来进行解答

mmap函数是一种内存映射文件的方法,他可以将一个文件或设备映射到进程的地址空间中,使得进程可以像访问内存一样访问文件或设备。

mmap分为:文件映射和匿名映射,该函数的主要工作是创建VMA

VMA是指虚拟内存区域,是Linux内核中用于管理进程虚拟内存的数据结构,每个进程有一个VMA链表,用于描述进程的虚拟地址空间的不用区域。

VMA可以表示进程代码段、数据段、堆、栈等不同的内存区域。

VMA用于指导虚拟内存映射物理内存,没有VMA指导无法完成虚拟地址和物理地址映射

过程中如果存在进程访问尚未建立映射关系的虚拟内存时,这是会触发Linux缺页中断,并根据页面的状态来分配物理页面并建立映射关系。

通过mmap创建VMA后,我们使用VMA内存映射区虚拟地址,但此时虚拟地址不能映射物理地址,原因是映射表还没有动态创建出来,

缺页中断发生后,中断处理函数会完成虚拟地址到物理地址隔各个映射表创建。映射表创建完成后,还需要PTE的创建。

PTE的创建涉及到文件映射,文件映射可以将文件的内容映射到进程的内存空间。

文件映射PTE指向文件的物理内存页,文件映射需要VMA指向对应的文件,由文件来生成物理页。</

相关文章:

  • 计算机基础:二进制基础14,二进制加法
  • 某建筑石料用灰岩矿自动化监测
  • 海思vio模块学习
  • Android第五次面试总结之网络篇(修)
  • 【AI】OrinNX上安装RIVA-2.19.0,实现文本转语音
  • 第14讲:科研图表的导出与排版艺术——高质量 PDF、TIFF 输出与投稿规范全攻略!
  • 水安题库:水利水电安全员ABC精选练习题
  • MySQL多表操作
  • HCIE证书失效?续证流程与影响全解析
  • 一个SciPy图像处理案例的全过程
  • 小结:GRE VPN;IPSec
  • 【论文阅读/复现】RT-DETR的网络结构/训练/推理/验证/导出模型
  • 抱佛脚之学SSMSpringMVC数据绑定
  • JavaScript 作用域全面总结
  • Spring MVC 中解决中文乱码问题
  • 近期实践总结
  • 通信设备制造数字化转型中的创新模式与实践探索
  • 某高端制造企业知识中枢升级,基于悦数 Graph RAG 打造工业级「故障排查最强大脑」
  • 基于STM32、HAL库的DS28E25安全验证及加密芯片驱动程序设计
  • 有什么好用的工地全过程管理erp软件系统?如何推进数字化转型?
  • 助力企业高质量出海,上海静安发放服务包、服务券
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 影子调查丨危房之下,百余住户搬离梦嘉商贸楼
  • 民调显示特朗普执政百日支持率为80年来美历任总统最低
  • 国内生产、境外“游一圈”再进保税仓,这些“全球购”保健品竟是假进口
  • 百岁太极拳大师、陈氏太极拳第十一代嫡宗传人陈全忠逝世