起動時にカーネル全体がメモリにロードされますか?

起動時にカーネル全体がメモリにロードされますか?

最後まで読んだこの人気のあるIBM文書(オンラインでよく見た内容です)初期のRAMディスクの機能について説明します。

しかし、これがどのように機能するかを概念化するのに問題があります。

文書には次のように記載されています。

ブートローダ(GRUBなど)は、ロードするカーネルを識別し、カーネルをコピーします。カーネルイメージと関連するinitrdをメモリに追加する

私はすでに混乱しています。カーネル全体をメモリにコピーしますか、それとも一部だけコピーしますか?カーネル全体がメモリにある場合、初期RAMディスクが必要なのはなぜですか?

私の考えでは、initrdの目的は小さな一般的なカーネルイメージを持つことを可能にすることであり、initrdはカーネルイメージをロードする前にここに正しいモジュールをインストールします。しかし、カーネル全体がすでにメモリにある場合、なぜinitrdが必要なのですか?

これはまた私を混乱させるもう一つの問題をもたらします。モジュールがカーネルにロードされる場所はどこですか?すべてのカーネルモジュールはinitrdに保存されていますか?

ベストアンサー1

カーネル全体は、起動時に通常initramfs現在と一緒にメモリにロードされます。 (起動を必要としないようにシステムを設定することも可能ですinitramfsが、デスクトップやサーバーでは一般的ではありません。)

の目的は、initramfs「実際の」ファイルシステムをマウントし、システムの起動を続行するために必要な機能を提供することです。これにはカーネルモジュールとさまざまなバイナリが含まれます。少なくともudevいくつかのネットワーキングおよびkmodローディングモジュールが必要な場合がある。

モジュールは起動後にカーネルにロードされるため、実際のファイルシステム、開発ツリー(モジュールを開発する場合)など、どこにでも保存できます。マウントルートファイルシステム(残りを含む)を含めるだけinitramfsです。必須モジュール。initramfs/lib/modulesinitramfs

おすすめ記事