__setup and early_param在内核中的作用是:设置启动参数。

本文主要内容源于:Linux启动参数及实现 __setup与early_param

首先看下__setup and early_param这两个宏长什么样?

1
2
#define early_param(str, fn)						\
__setup_param(str, fn, fn, 1)
1
2
#define early_param(str, fn)						\
__setup_param(str, fn, fn, 1)

__setupearly_param不同的是,early_param 宏注册的内核选项必须要在其他内核选项之前被处理。

在函数start_kernel中,parse_early_param处理early_param定义的参数,parse_args处理__setup定义的参数。


参考资料:

  1. Linux启动参数及实现 __setup与early_param
  2. Linux kernel parses cmdline
  3. __setup 在内核中的作用