为什么没有MMU就无法运行Linux系统呢?
时间:2023-08-03 18:34:00来源:嵌入式开发爱好者

先来看一张图


(资料图)

第一:MMU内存管理

MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟内存管理。

其主要功能是将虚拟地址转换为物理地址,同时提供访问权限的控制和缓存管理等功能。MMU是现代计算机操作系统中重要的组成部分,可以提高系统的稳定性和安全性。

在内存管理方面,MMU可以通过页面表(Page Table)实现虚拟内存管理。页面表是一种数据结构,记录了每个虚拟页面和其对应的物理页面之间的映射关系。

当CPU发出一个虚拟地址时,MMU会通过页面表查找并将其转换为对应的物理地址。

此外,MMU还可以通过页面表实现内存保护和共享等功能,从而提高系统的安全性和效率。

总之,MMU是内存管理中一个重要的硬件组件,可以实现虚拟内存管理、内存保护、共享和缓存等功能,为现代计算机操作系统的稳定性和安全性提供支持。

第二:举个例子

假设我们有一个程序,它需要访问两个内存区域:一个是只读的代码区域,一个是可读写的数据区域。

我们现在想要在一个没有 MMU 的系统上运行这个程序。如果没有 MMU,代码区域和数据区域就只能被映射到两个固定的物理地址上。这就意味着,如果程序尝试访问一个不正确的地址,可能会导致系统崩溃。

现在,如果我们在一个具有 MMU 的系统上运行这个程序,情况会有所不同。MMU 可以将程序尝试访问的地址映射到不同的物理地址,这样可以使得代码区域和数据区域在物理内存中不再是固定的位置。

这意味着,如果程序尝试访问不正确的地址,MMU 可以通过重新映射来保护系统不崩溃。

MMU 还可以将多个虚拟地址映射到同一个物理地址上,这就是所谓的页共享(page sharing),可以减少物理内存的使用。

如果没有MMU,程序访问内存时只能使用物理地址,而物理地址是直接映射到内存芯片上的地址,程序可以随意访问任何一个物理地址。

这种情况下,程序如果访问了错误的地址或试图访问未被授权的地址,就会产生访问错误或非法访问,可能导致系统崩溃、数据丢失等问题。

而有了MMU,程序访问的是虚拟地址,由MMU负责将虚拟地址映射到物理地址上,这样程序就无法直接访问物理地址。

同时,MMU可以根据内存访问权限来限制程序对内存的访问,确保系统的安全性和稳定性。

因此,没有MMU时,程序可能会访问到其他地址,而有了MMU,程序只能访问被允许访问的地址,可以有效地避免非法访问的问题。

第三:为什么相同的虚拟地址空间在物理地址不会发生冲突呢?

相同的虚拟地址空间在不同的进程中可能会映射到不同的物理地址,这个映射的过程是由MMU完成的。在操作系统中,每个进程都有独立的虚拟地址空间,且这些虚拟地址空间互不干扰。

MMU会将每个进程的虚拟地址映射到对应的物理地址上,使得不同进程间的内存访问不会相互干扰。同时,MMU也会提供一些安全机制,如页面保护等,来防止进程越界访问内存或访问其他进程的内存。

因此,MMU起到了保护进程间内存互不干扰的作用,也是现代操作系统的重要组成部分。

第四:页表是什么?

页表是一种用于存储虚拟内存地址与物理内存地址映射关系的数据结构。在使用虚拟内存的系统中,每个进程都有自己的虚拟地址空间,而这些虚拟地址空间被分割成许多页(通常大小为4KB或更大),而不是一整块连续的内存。

因此,当进程需要访问某个虚拟地址时,需要将其翻译成对应的物理地址。这个翻译过程就是通过页表来完成的。

页表的基本原理是将虚拟地址划分成一个页号和一个偏移量。

页号用于在页表中查找对应的物理页帧号,而偏移量则用于计算该虚拟地址在物理页帧中的偏移量。通过这种方式,就可以将虚拟地址映射到物理地址,使得进程可以访问对应的内存区域。

页表一般由操作系统来维护,因为操作系统需要掌握虚拟地址和物理地址之间的映射关系。

在使用MMU(Memory Management Unit)的硬件支持的系统中,当进程访问虚拟地址时,MMU会通过页表将虚拟地址转换为物理地址,并将访问指向正确的物理地址。这样,进程就可以在不知道自己真实物理地址的情况下访问内存。

第五:为什么没有MMU就无法运行Linux系统?

这是因为 Linux 内核将虚拟地址空间分为多个页面,并将这些页面映射到物理地址空间上,以实现内存隔离、保护和虚拟内存等功能。

没有 MMU,就无法实现这种映射,从而无法运行 Linux 系统。

第六:为什么有些较为简单的SOC可能没有MMU,但仍然可以运行一些嵌入式操作系统或者裸机程序?

RTOS可以运行在没有MMU的系统上,因为RTOS通常不需要进行内存保护和虚拟地址映射等高级特性。

相反,RTOS的设计侧重于实时性和低延迟,因此通常只需要简单的内存管理和任务调度即可。

这使得RTOS可以运行在许多嵌入式系统上,包括一些没有MMU的系统。

审核编辑:刘清

标签:

生活指南
  • 研究发现每周锻炼3次 3秒钟就能带来真正的益处

    研究人员曾发现,每周五天、每天只需锻炼三秒钟就能提高肌肉力量,他们

  • 全资收购永辉?京东回应!

    8月1日,有自媒体发文称,京东近期正与永辉接洽收购事宜,双方进行了至

  • ​西平县芦庙乡召开平安建设宣传工作推进会_新要闻

    为进一步巩固和提升广大人民群众的安全感和执法满意度,提升人民群众对

  • 焦点速讯:vscode的用处是什么? vscode的主要功能有哪些?

    vscode的用处是什么?vscode是用来编写代码的软件,vscode全称Visual

  • 2024量产!传小米汽车开始筛选交付中心:建筑规模超3000㎡

    2024量产!传小米汽车开始筛选交付中心:建筑规模超3000㎡

  • 颗粒板和欧松板哪个好?衣柜用欧松板好还是颗粒板好? 全球时快讯

    颗粒板和欧松板哪个好?颗粒板和欧松板的区别介绍:1、原料欧松板:它

  • 速看:银行贷款利息是月息还是年息?定期存款可以提前取出来吗?

    银行贷款利息是月息还是年息?1、银行贷款利息有按年算的,也有按月

  • 当前看点!光大证券:预计下半年煤炭供需格局优于上半年,动力煤价格有望震荡走强

    7月5日消息,光大证券研报表示,在三峡出库流量并未明显好转的情况下,

  • 阿尔萨斯怎么死的?阿尔萨斯最后清醒了吗?

    阿尔萨斯怎么死的?巫妖王阿尔萨斯被剑中灵魂反噬而死。 巫妖王阿尔

  • 看热讯:[快讯]绝味食品2260万限售股7月7日解禁

    CFi CN讯:绝味食品(股票代码:603517)在2023年07月07日新增可售A股2

  • e招贷不上征信吗?招商银行e招贷上不上征信?-全球信息

    e招贷不上征信吗?e招贷是招商银行推出的贷款产品,招商银行是正规的

  • 环球资讯:杞菊地黄丸巧搭配,效果翻倍!1. 杞菊地黄W逍遥丸功效:滋补肝

    杞菊地黄丸巧搭配,效果翻倍!1 杞菊地黄W➕逍遥丸功效:滋补肝肾

  • 2023中级会计财务管理答疑精华:风险收益率 焦点快看

    2023年中级会计职称备考已经开始啦!为帮助大家备考,正保会计网校特从

  • 全球快讯:六安市叶集区:暖心助餐饭让老年生活有“知”有“味”

    “这里的饭软和,菜味道也好,不仅花样多,还好吃便宜,感谢政府对我们

  • 平谷区夏各庄镇举办土特产推介会

    本报讯(记者马超)胖嘟嘟的赤松茸,品种多样的红薯系列产品,鲜嫩多汁

  • 山东43人名单曝光,终生禁驾!

    近日,山东省公安厅交通管理局发布6月份重点交通违法企业、车辆及驾驶

  • 民生
    • 演员李立群因带状疱疹住院半月花费20万?官方回应:不符!

    • oppoa11多少钱(OPPO A11价格揭晓,抢购即刻开启)

    • 北京东城区将升级王府井街区 计划投入2.9亿元

    • iso9001质量管理体系包含哪些内容呢(iso9001质量管理体系包含哪些内容)