zoukankan      html  css  js  c++  java
  • 深入理解linux网络技术内幕读书笔记(七)--组件初始化的内核基础架构

    引导期间的内核选项

    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,允许开发人员为这两个函数任意命名。




  • 相关阅读:
    Linux服务器通过rz/sz轻松上传下载文件
    Linux卸载系统自带的JDK
    汉语-词语:恒等
    汉语-词语:女人
    汉语-词语:长远
    汉语-词语:长久
    汉语-词语:短暂
    汉语-词语:当下
    汉语-词语:漫长
    中药:小麦
  • 原文地址:https://www.cnblogs.com/mosp/p/3558634.html
Copyright © 2011-2022 走看看