GNU/Linux >> Linux の 問題 >  >> Linux

zImage、rootfsとは

すべてのファイルが何を担当しているかを理解するには、MPU がどのように起動するかを理解する必要があります。
ご質問のとおり、NXP (Freescale) i.MX マイクロプロセッサ ファミリを使用されていることがわかりました。これには、基本的なシステム セットアップ (メモリへのインターフェイス、クロック ツリーなど) を作成し、ブートするメディアを検索し (焼き付けられた OTP ビットまたは GPIO に基づいて)、ブートローダー (あなたの場合は u-boot) を検索する小さな ROM ローダーが含まれています。データシートで指定されている正確なアドレスを読み込んで起動します。 U-Boot は、より多くのインターフェイス (イーサネットなど) を初期化し、カーネルに渡す必要がある引数 (NFS を使用する場合は画面設定、コンソール、ネットワーク設定) を見つけ、カーネルを DDR にコピーして、すべての引数を渡します。カーネルはすべてのドライバーをロードし、すべてのライブラリ、アプリケーションなどを含む rootfs を検索します。この後、カーネルは init スクリプトを開始します。これにより、すべてのシステムが初期化され、アプリケーションが開始されます。

<オール>
  • u-boot は、ROM ブートローダーの後に最初に開始されるものです。MPU で OS なしで (マイクロコントローラーなどの) ベアメタル コードを実行する場合は、独自のコードに置き換えることができます。
  • zImage は、自己解凍型の Linux カーネル イメージの圧縮バージョンです。
  • rootfs はルート ファイル システムであり、すべてのアプリケーション、ライブラリ、およびほとんどの場合ホーム フォルダを含むすべてが含まれます。
  • sdcard イメージは、カードに (dd を使用して) コピーできる上記のすべてのものです。コピー後、カーネルとデバイス ツリーを含む FAT パーティションと、rootfs を含む EXT パーティションが表示されます。u-boot は、FAT の前の未パーティション領域にあります ( i.MX6it の 0x80000 を使用する場合)。生活を楽にするためにあります。

    • zImage コンパイルされたカーネルの実際のバイナリ イメージです。これは、ブート ローダーがロードして実行しようとするものです (組み込み Linux では、何らかの方法でブート セクタに直接書き込まれていると思います。手順については、組み込み Linux ディストリビューションのマニュアルを参照してください)
    • rootfs いわゆるINITial RamDisk(initrdとしても知られる)イメージで、実際のルートファイルシステムをマウントできる状態にカーネルを起動するために必要なものがすべて含まれています。
    • uboot 組み込み Linux で使用されるブートローダーです。基本的に、BIOS (Basic Input Output System) に zImage を実行するように指示します。 zImage を伝えるオプション付き 起動方法を知るためのルート ファイルシステムの場所

    推測する必要がある場合、これらのファイルはすべて、実際の SD カード イメージを生成するプロセスで作成される可能性があります。たとえ前の 3 つを手動で最終イメージに追加する必要がなくなったとしてもです。


    Linux
    1. カーネル Linux サーバーの基礎となるものは?

    2. 現在の Linux カーネル ソースは何ですか?

    3. Docker イメージ/コンテナの中身は?

    1. kernel.unprivileged_userns_clone を有効にするとどうなりますか?

    2. Linux のハイ メモリとロー メモリとは何ですか?

    3. `hostname` のデフォルトのファイルは何ですか?

    1. Linux カーネルがプリエンプティブであるとはどういう意味ですか?

    2. Linux カーネル コードでの EXPORT_SYMBOL の意味は何ですか?

    3. ドライブを回転させているものをどのように確認できますか?