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内核)