質問

カーネルがブートローダーから取得する必要があるものはありますか? このようなカーネルからのブートメッセージを見ました。

"Fetching vars from bootloader... OK"

では、渡される変数は 正確に 何ですか? また、変数はブートローダーからどのように渡されますか?スタック経由ですか?

役に立ちましたか?

解決

カーネルは、テキストベースのいわゆるコマンドラインオプションを受け入れます。これは非常に便利です。カーネルを再コンパイルしなくても多くのことができるからです。引数の引き渡しに関しては、アーキテクチャに依存します。 ARMでは、メモリ内の場所へのポインタ、またはメモリ内の固定された場所を介して行われます。

ARM での方法を次に示します。 通常、カーネルは最初からマシンを起動することはできません。 BIOSからの場合もありますが、ゼロからではありません。初期化が必要です。これはブートローダーの仕事です。

他のヒント

Linuxカーネルがブートローダーから受け入れるパラメータがいくつかありますが、今覚えているのは vga パラメータです。例:

kernel /vmlinuz-2.6.30 root=/dev/disk/by-uuid/3999cb7d-8e1e-4daf-9cce-3f49a02b00f2 ro vga=0x318

Linuxカーネルについて知っておくべき10のブート時パラメーター。一般的なパラメーターの一部を説明しています。

Linuxカーネルの場合、ブートローダーがカーネルに通知しなければならないことがいくつかあります。カーネルコマンドライン(既に述べた他のいくつかの人々)のようなものが含まれています。メモリ内の initrd が読み込まれ、initrdが使用されている場合はそのサイズ(カーネルはそれ自体を読み込むことができません。多くの場合、initrdを使用する場合、ストレージデバイスにアクセスするために必要なモジュールはinitrd内にあり、ストレージにアクセスする前の非常に複雑な設定)、およびいくつかのさまざまなオッズと終了。

Documentation / x86 / boot.txt (2.6.30のバージョンへのリンク)従来のx86アーキテクチャ(32ビットと64ビットの両方)の詳細については、これらの変数がカーネルセットアップコードに渡される方法を含めて。

Linuxはブートローダーから変数を受け取り、特定のオプションを使用できるようにします。できることの1つは、ログインする必要がないようにすることです(回復モード)。他にもいくつかのオプションがあります。主に、何かに問題がある場合、またはパスワードを変更する場合に修正を行うことができます。これは、別のオプションを使用することを選択した場合、Ubuntu Live-CDがLinuxをブートする方法です。

通常、コマンドラインパラメーターと呼ばれるパラメーターは、ブートローダーからカーネルモジュールに渡されます。ブートローダーはBIOS割り込みの多くを使用して検出します。

memory
HDD
Processor
Keyboard
Screen
Mouse
ETC...

およびすべてのハーウェアの詳細は、ブート時に検出されます。つまり、リアルモードで、このパラメーターをカーネルに渡します。

scroll top