カーネル資源の初期化

start_kernel関数は、Linuxカーネル内の様々な機能やデータ構造の初期化を行う関数である。この関数は初期化プロセスのコンテキストで実行される。初期化処理の最後で、initプロセスの生成を行っている。初期化が完了した時点でこのタスクはアイドルプロセスとなる。

    start_kernel()
        Linux起動メッセージの出力

        (各種初期化処理)
        trap_init();
        init_IRQ();
        sched_init();
        time_init();
            :
        parse_options();
            :
            :
        smp_init();
        initプロセス起動(kernel_thread(init)関数)

        アイドル関数(cpu_idle)を呼び出し、初期化タスクがアイドルプロセスとなる
}

parse_options関数では、ブートから渡されたパラメータの解析を行う。Linuxカーネル自体が受けつけるパラーメタ以外は、パラメータ解析は各種ドライバなどが以下の形式で登録した関数を呼び出すことにより実現する。
これらで解決できないオプションは、/etc/init起動時の引数として引き渡す。

   setup_baa(char *line) {
         lineに渡されたオプションの解析
   }
   __setup("hoge=", setup_baa);

(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST
1