でstart_kernel()
カーネルが最初にすることは実行ですsetup_arch()
。setup_arch()
サポートされる各アーキテクチャに対して定義されるため、適切なコマンドラインへのポインタが渡されます。
このポインタはどのように初期化され、カーネルはいつどのようにコンピュータアーキテクチャを取得しますか?
ベストアンサー1
特定のカーネルは単一のアーキテクチャ用に構築されたので、単一のsetup_arch
。一般的なstart_kernel
これを呼び出すが、初期化されたポインタをコマンドラインに渡すのではなく、コマンドラインポインタへのポインタを渡し、setup_arch
そのポインタを初期化することはタスクの一部です。
例えば、x86にはグローバルcommand_line
変数があります、そしてsetup_arch
によって提供されるポインタにアドレスを保存します。start_kernel
。
したがって、カーネルは、コンピュータの構築時にコンピュータのアーキテクチャを効果的にキャプチャします。