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

内存保护单元MPU

一、介绍

内存保护单元 是一种硬件模块,通常集成在处理器内核中,用于管理和管理对内存的访问,以提高系统的可靠性和安全性。

它的核心任务是保护。想象一下,一个操作系统中有多个任务在运行:

* 任务A的代码 bug 可能会错误地写入任务B的数据内存区域,导致任务B崩溃。

* 一个恶意的应用程序可能会尝试访问操作系统的内核代码区域,获取系统控制权。

MPU就是为了防止这类问题而存在的“内存警察”。

 

二、MPU 的工作原理

1. 定义区域:软件(通常是操作系统内核)为MPU配置一系列保护区域。每个区域由以下属性定义:

   * 起始地址:该区域在内存中的开始位置。

   * 大小:该区域的范围。

   * 访问权限:规定什么模式可以访问该区域(如:只读、读/写、禁止访问)。

      * 特权访问:仅允许在特权模式下运行的代码(如操作系统内核)访问。

      * 用户访问:允许在用户模式下运行的代码(如应用程序)访问。

   * 内存属性:例如该区域是否可缓存、是否可共享等。

2. 实时监控:

在程序运行期间,MPU硬件会实时检查处理器发出的每一次内存访问(取指令、加载数据、存储数据)。

3. 执行规则:

   * 如果访问符合为该内存区域定义的规则,则访问正常进行。

   * 如果访问违反了规则(例如,一个用户程序试图写入一个只读区域,或访问一个未分配给它的区域),MPU会立即触发一个异常(通常是 MemManage Fault)。

4. 异常处理:

CPU会暂停当前违规的任务,并跳转到操作系统预设的异常处理程序。操作系统可以据此终止这个“行为不端”的任务,并可能记录错误日志,从而防止它破坏其他任务或系统本身,保证了系统的整体稳定。

三、MPU与MMU的区别

MPU 内存保护单元与 MMU 内存管理单元的区别,应用场景 实时操作系统,对确定性要求高的场景,成本敏感的微控制器。硬件成本简单,成本低,面积小

MPU对虚拟内存不支持,MPU工作在物理地址上。 

MMU的核心功能是虚拟地址到物理地址的转换(通过页表)。 应用场景是大型操作系统,需要复杂内存管理的场景。硬件复杂,成本高,面积大(需要TLB等缓存)

简单比喻:

* MMU 像是一个带高级GPS和区域权限管理的出租车系统。它不仅可以带你到任何地方(虚拟地址 -> 物理地址),还能确保你不会进入禁区(内存保护)。

* MPU 则像一个固定的路障和检查站系统。它没有GPS功能,但它在各个关键路口设卡,检查你的车辆是否有权限进入前方的区域(内存保护)。

 

四、MPU 的应用场景

MPU广泛应用于运行实时操作系统 的微控制器中,例如:

* FreeRTOS with MPU support

* Azure RTOS ThreadX

* Zephyr RTOS

在这些系统中,MPU用于:

* 保护内核代码和数据不被应用程序破坏。

* 隔离不同任务(进程)的堆栈和数据空间,实现任务间的内存保护。

* 将某些关键内存区域设置为只读(例如,存储常数或代码的Flash区域),防止意外写入。

* 标记某些内存区域为“不可执行”,防止代码注入攻击,提升安全性。

 

 

http://www.dtcms.com/a/365616.html

相关文章:

  • 用资产驱动方法构建汽车网络安全档案
  • 中科米堆CASAIM自动化三维测量设备测量汽车零部件尺寸质量控制
  • php:PHP 8 新特性深度解析与实战应用:提升开发效率的关键技巧
  • 2025全球及中国汽车VDA电池模组:头部企业市场排名与占有率独家揭晓
  • 视频打不开怎么办?教你一键修改默认打开方式
  • Java全栈工程师的面试实战:从基础到复杂问题的完整解析
  • Jira vs. GitLab Issues vs. Redmine:终极选型与成本分析
  • 金牛区好办公室国际数字影像产业园企业服务
  • 《深入解析:Kubernetes网络策略冲突导致的跨节点服务故障排查全过程》
  • Streamable HTTP
  • 《录井工程与管理》——第四章单井地质剖面建立录井技术
  • 新手向:JavaScript性能优化实战
  • 免费的PDF工具箱软件,免费PDF转word,PDF合并,PDF24下载,24个功能
  • JVM调优与常见参数(如 -Xms、-Xmx、-XX:+PrintGCDetails) 的必会知识点汇总
  • RPA行业的主要玩家有哪些?
  • 告别剪辑烦恼!3个超实用技巧,让你的视频瞬间高级起来
  • 计算机视觉与深度学习 | 深度学习图像匹配算法在不同纹理复杂度场景下的鲁棒性和计算效率评估方法
  • 目标检测定位损失函数:Smooth L1 loss 、IOU loss及其变体
  • AlexNet:计算机视觉的革命性之作
  • DAY20-新世纪DL(DeepLearning/深度学习)战士:终(目标检测/YOLO)3
  • 指针高级(2)
  • 当3D高斯泼溅遇见视频孪生:城市治理的“科幻“时代来了
  • 数据结构---选择排序
  • 【项目】分布式Json-RPC框架 - 应用层实现
  • 【Linux】网络(中)
  • 机器视觉opencv总结
  • 毕业项目推荐:74-基于yolov8/yolov5/yolo11的垃圾桶垃圾溢出检测识别系统(Python+卷积神经网络)
  • AssetStudio解包Unity游戏资源
  • HarmonyOS学习
  • 搞定鸿蒙新手 3 大痛点:页面跳转实现、应用标识修改与 Hyper-V 启动故障排查