我是靠谱客的博主 简单机器猫,最近开发中收集的这篇文章主要介绍linux通过内核启动参数预留系统内存,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 首先正常启动内核

我们需要启动内核后查询一些信息。


2. 查看系统内存信息

  内核启动后通过 

cat /proc/iomem
  
  
   查看内存的分布,结果类似:
100000000-10dffffff : System RAM
  
  

  但是我们会看到有很多条这样的项,我们主要关注"System RAM"这样的项,因为这代表系统内存。


3. 在System RAM的段,找一个地址最高的RAM项的结束地址,然后计算出预留的起始地址

  例如,我需要预留4M内存,起始地址就是

0x10dffffff - 0x400000 = 0x10DBFFFFF
  
  

  这个是内存物理地址,你所选的预留内存的地址是需要由你自己来规划的。我这里之所以选择末端地址,是因为我的机器启动时,末端的地址基本上用不到。


4. 通过内核启动参数预留内存

  在启动命令行添加如下参数:
memmap=4m$0x10DBFFFFF
  
  
  这样就表示从0x10DBFFFFF处预留出4M内存。
  注意:如果是通过grub启动,需要确定grub是否支持识别$,否则需要通过转义字符:
memmap=4m$0x10DBFFFFF
  
  

5. 验证

  最后要做的事情就是重启内核,等内核启动完成后,再通过cat /proc/iomem,观察我们预留的 0x10DBFFFFF ~ 0x10dFFFFFE是否是 “reserved”状态。


参考:https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

最后

以上就是简单机器猫为你收集整理的linux通过内核启动参数预留系统内存的全部内容,希望文章能够帮你解决linux通过内核启动参数预留系统内存所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部