引导期间的内核选项

linux运行用户把内核配置选项传给引导记录,然后引导记录再把选项传给内核。
在引导阶段,对parse_args调用两次,负责引导期间配置输入数据。

注册关键字

内核组件可以利用定义在include/linux/init.h中的__setup宏, 注册关键字和相关联的处理函数。以下是其语法:

1:  __setup(string, function_handler)

string是关键字,而function_handler是相关联的处理函数。
当一段代码编译成模块时,__setup宏会被忽略(即定义为空操作)。
start_kernel两次调用parse_args以解析引导配置字符串的原因在于, 引导期间选项实际上分成两类, 而每一次调用都是针对其中一类:

  • 默认选项
    多数选项都属于这一类。这些选项都是用__setup宏定义,而是由parse_args第二次被调用时处理。
  • 初期选项
    内核引导期间,有些选项必须比其他选项更早处理。内核提供了early_param宏以声明这些替代__setup。然后,这些选项会由parse_early_params负责。
    early_param和__setup的唯一区别是early_param会设置一个特殊标识,使内核能区分这两种情况。

模块初始化代码

每个模块都必须提供两个特殊函数,称为init_module和cleanup_module。
内核提供两个宏module_init和module_exit,允许开发人员为这两个函数任意命名。

最新文章

  1. px,em,rem
  2. [Unity3d]向量的过度方法以及拖尾效果
  3. try-catch和throw,throws的区别
  4. sql语句 优化技巧
  5. HDU 1856
  6. Ajax上传文件进度条显示
  7. DAG上动态规划
  8. C#学习第五天
  9. PHP设计模式笔记四:适配器模式 -- Rango韩老师 http://www.imooc.com/learn/236
  10. MSSQL 获取指定日期所在星期的第一天和最后一天日期 获取指定日期坐在月的第一天和最后一天
  11. php中实现快排与冒泡排序
  12. Net 通常用于dll 第三方插件
  13. jQuery插件---轻量级的弹出窗口wBox
  14. paramiko 模块安装
  15. mysql 大树据表update很慢
  16. [洛谷P2580]于是他错误的点名开始了
  17. JS 实现百度搜索功能
  18. lvm语法2
  19. jquery实现简单的弹出框
  20. python 游戏(记忆拼图Memory_Puzzle)

热门文章

  1. oracle REGEXP_SUBSTR实现字符串转列
  2. C语言判断文件是否存在
  3. Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)
  4. Android组件系列----BroadcastReceiver广播接收器
  5. LSI MegaCli 命令使用4
  6. Adding Swap Files
  7. sourceTree添加git密钥步骤
  8. Dreamweaver管理Svn控制器内容
  9. 安装 SQL Server2008 安装程序规则支持提示“重新启动计算机”失败
  10. android 屏幕适配1 ——dimens.xml的适配