新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux 为什么必须要 MMU

发布时间:2026/9/30 6:55:37来源:尧图网络
Linux 为什么必须要 MMU
结论Linux 的进程模型依赖虚拟内存而 MMU 是硬件负责虚拟地址 ↔ 物理地址翻译同时提供内存权限检查没有 MMU 只能跑 uClinux无 MMU 版 Linux标准主线 Linux 必须 MMU。 RISC-V 上就是S 模式 Sv39/Sv48 MMU定义在 Privileged 特权架构规范里。1. 核心需求进程之间的地址空间隔离每个应用进程独立虚拟地址空间都以为自己独占全部内存都可以从地址 0 开始布局。进程 A 访问的0x1000和进程 B 访问的0x1000经过 MMU 翻译指向完全不同的物理内存。如果一个进程非法访问、崩溃不会篡改其他进程或者内核的内存。没有 MMUuClinux所有进程直接用物理地址没有硬件隔离。进程一旦越界写内存直接干掉内核 / 其他程序稳定性很差。2. 内存权限保护读 / 写 / 执行 R/W/XMMU 页表项自带权限位内核内存只允许内核态访问用户态进程不能读、更不能写代码段可读 可执行不可写防止缓冲区溢出注入恶意代码数据段可读可写不可执行 硬件在访存时MMU 自动检查权限违反直接触发 Page Fault 异常内核杀掉非法进程。RISC-V Sv 页表的R/W/X/U位就是这个功能。 PMP 是 M 模式的简单保护粒度粗不支持每个进程独立地址空间不能替代 MMU。3. 按需内存分配 Swap 交换虚拟内存Demand Paging缺页加载程序很大但不是全部代码立刻载入内存。进程访问还没加载的页面 → MMU 报 Page FaultLinux 内核把磁盘文件读入内存再重新执行指令。Swap物理内存不够时把不常用页面写到磁盘 swap 分区腾物理内存给活跃程序。这两个功能完全依赖 MMU 的 page fault 异常机制无 MMU 系统做不到标准 swap。4. 地址重定位简化程序编译应用程序编译成位置无关代码 (PIC)或者虚拟地址链接不用关心物理内存放在哪里。内核只需要修改页表就能把同一个程序加载到物理内存任意位置不用重写程序本身。 无 MMU 系统编译时必须预先固定物理地址或者做软件重定位非常麻烦。5. 内存透明映射mmapmmap把文件直接映射到进程虚拟地址访问文件就像访问内存。依赖 MMU 的页表映射机制。补充uClinux不带 MMU 的 Linux可以跑在没有 MMU 的 RISC-V MCU只 MU无 Sv MMU代价没有硬件进程隔离没有 swapfork 系统调用不支持只能 vfork内存保护能力弱内存越界容易系统崩溃嵌入式极简场景使用不是主线标准 Linux。RISC-V 视角结合特权规范标准 Linux 跑在 RISC-VS 模式S 模式satp寄存器开启 Sv 虚拟内存MMUsatp 存放根页表物理基址CPU 取指 /load/store硬件 MMU 自动做 VA→PA 翻译检查页面权限访问非法页面触发 S 模式 Page Fault 异常Linux 内核处理
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Excel零代码坐标定位:坐标系转换、静态地图API、批量标注全攻略 2026/9/30 15:56:57

Excel零代码坐标定位:坐标系转换、静态地图API、批量标注全攻略

干我们这行,谁手里没几张全是坐标的Excel表?前阵子同事丢给我一份表,几百个点位,全是经纬度,让我半小时内标到地图上给他看。我不用GIS软件,也不写Python脚本,就在Excel里完成了,他直…

阅读更多 →
RAG知识库才是AI项目隐形短板:数据、检索、评测全流程复盘 2026/9/30 15:56:38

RAG知识库才是AI项目隐形短板:数据、检索、评测全流程复盘

最近把过去半年跟过的几个AI项目从头到尾捋了一遍,越捋越觉得有个事值得单独拎出来说:模型选型上大家普遍都不差,甚至有的项目一开始就是冲着当时能拿到的最强模型去的,结果线上效果一塌糊涂,用户问什么都答不准&#…

阅读更多 →
AI Engineering from Scratch:重建可审计、可重放的AI工程地基 2026/9/30 15:56:38

AI Engineering from Scratch:重建可审计、可重放的AI工程地基

1. 这不是“搭积木”,而是重建AI工程的地基“AI Engineering from Scratch”——看到这个标题,很多人第一反应是:又要学Python、装CUDA、编译PyTorch源码?其实完全不是。我带过7个从零启动的AI产品团队,亲手交付过金融…

阅读更多 →
本地 AI 无人值守的五个卡点:从环境感知到错误恢复的工程化实践 2026/9/30 15:56:38

本地 AI 无人值守的五个卡点:从环境感知到错误恢复的工程化实践

平时我们聊本地 AI,聊得最多的就是“它帮我写了脚本”“它能直接执行命令了”。我实测下来确实如此——让本地模型写个批量重命名、清理日志、定时抓网页的脚本,基本都能出活。但一旦把场景换成“丢在那让它自己跑,跑上个半夜,明早…

阅读更多 →
考研互助平台SpringBoot+Vue前后端分离项目实战与部署解析 2026/9/30 15:56:38

考研互助平台SpringBoot+Vue前后端分离项目实战与部署解析

考研互助交流平台这类项目,几乎每年都会在课程设计和毕业设计里出现一轮。原因很简单:业务场景清晰、用户群体明确、功能边界容易划分,而且前后端技术栈非常标准,拿来练手或者改造成自己的项目都特别合适。这套SpringBoot后端Vue前…

阅读更多 →
ddraw.dll丢失怎么办?官方修复流程与单文件下载风险详解 2026/9/30 15:56:38

ddraw.dll丢失怎么办?官方修复流程与单文件下载风险详解

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉