news 2026/8/16 8:25:02

struct boot_params与memmap=的关系

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
struct boot_params与memmap=的关系

struct boot_paramsmemmap=内核参数之间,是信息源头信息过滤器的关系。boot_params(特别是其核心的e820_table)提供了硬件报告的完整内存布局,而memmap=参数则允许在这个布局上添加一层来自用户的“覆盖规则”,用来修改内核最终采纳的内存视图。

这个关系类似于:boot_params是一张由BIOS/UEFI绘制好的“原始地图”,而memmap=是在这张地图上画出的“自定义红线”,内核最终的行动将遵循被红线修改过的地图。

信息源头:boot_params提供硬件视角

struct boot_params中的e820_table是内核了解物理内存布局最核心的数据来源。它由引导程序(如GRUB)在启动时根据固件信息填充,包含了系统完整的E820内存映射表,详细描述了每块内存区域的起始地址、大小和类型(如可用RAM、保留内存等)。这是内核最信任的硬件原始信息。

信息过滤器:memmap=注入用户视角

memmap=参数是内核启动命令行中的一个选项,允许在boot_params提供的原始地图上应用修改。它的核心作用就是覆盖或调整E820表所描述的内存区域。常见的用法包括:

  • 限制最大可用地址memmap=nn[KMG](不带偏移量)或mem=参数,会限制系统可以使用的最大物理地址,任何超出该限制的内存区域都会被内核移除。

  • 保留或指定特定区域:通过memmap=nn@ss等格式,可以将指定区域标记为保留或可用,这会影响内核的最终内存视图。

协同工作:用户规则覆盖硬件数据

在启动过程中,内核会按照以下流程协同处理这两者:

  1. 获取硬件数据:内核首先从boot_params中读取固件提供的E820表。

  2. 解析用户规则:内核解析命令行中的memmap=参数。

  3. 应用覆盖:内核根据memmap=的规则,对原始的E820表进行修改、删除或新增条目。

  4. 建立最终视图:基于修改后的内存表,内核构建其最终的内存管理视图(如初始化memblock分配器)。

一个更现代和稳健的做法是,当内存条数过多时(超过boot_params固定的128个E820表容量),引导程序或内核可以通过setup_data链表来传递扩展的内存映射信息,而不是依赖受限的命令行。这也从侧面体现了boot_params作为基础数据结构的核心地位。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 8:23:25

当你的问卷还在“拷问”受访者,聪明人已经在和AI“共创”了

深夜对着电脑改问卷,大概是每个社科研究者的“标配噩梦”。 屏幕上是第七版修改稿:“您是否认同……”“您在多大程度上同意……”——读起来像在审讯犯人。更扎心的是,你知道就算回收了300份,导师大概率还是会问:“你…

作者头像 李华
网站建设 2026/8/16 8:23:13

智能视频批量剪辑与矩阵分发系统实战解析

1. 项目概述:智动群剪视频矩阵引的核心价值最近在短视频运营圈里,"智动群剪视频矩阵引"这个概念被频繁提及。作为从业者,我花了三周时间深入测试了这套方法,发现它确实能解决内容创作者最头疼的三个问题:批量…

作者头像 李华
网站建设 2026/8/16 8:22:36

耐高温硅酮密封胶,耐磨专业之选

耐高温硅酮密封胶:高温工况下的耐磨密封之道在工业设备维护与特殊工况密封领域,耐高温硅酮密封胶正扮演着越来越关键的角色。从发动机歧管到高温烘箱,从蒸汽管路到热处理设备,这些长期处于高温环境的金属部件,其密封与…

作者头像 李华
网站建设 2026/8/16 8:20:08

Codex AI助手本地部署指南:从环境配置到API集成实战

这次我们来看一个名为 Codex 的 AI 助手项目。从标题和网络热度来看,它被冠以“最强 AI 助手”的名号,并提供了从安装到进阶的完整教程和安装包。对于开发者、技术爱好者或任何希望提升效率的人来说,一个能本地部署、功能强大的 AI 助手无疑极…

作者头像 李华
网站建设 2026/8/16 8:16:30

Apex启动崩溃Fatal Error DXGI报错怎么办?0x887A0006解决方法

如果你更习惯看视频,可以先看看我这期视频,里面演示了具体的操作步骤和解决过程:📺 [Apex启动崩溃Fatal Error DXGI报错解决方法](https://v.douyin.com/S3_DvVWYInQ/)本期视频主要讲了:Apex Le…

作者头像 李华
网站建设 2026/8/16 8:15:00

AI代码自我迭代实验:144轮循环后系统崩溃的启示

最近在尝试让一个 AI 代理(Agent)去修改它自己写的 Python 代码,并且让它循环跑了 144 轮。这个想法听起来很酷,对吧?让 AI 自己迭代优化自己,理论上应该能越跑越好,甚至能发现一些人类程序员都…

作者头像 李华