さまざまなLinuxメモリ設計の選択肢を理解しようとしています。 私は組み込みARM / Linuxプラットフォーム(初心者)で作業しています。
ファームウェアは、カーネルとrootfsを含むフラッシュにロードされます。 ブートアップ中にイメージ全体がRAMにロードされます。
この設計選択の利点は何ですか?代替手段はありますか? Beagle Bone Blackのような評価ボードとはどう違いますか?
前もって感謝します
回答:
回答№1は1通常、フラッシュを使用してブートすることができますプログラム、カーネルイメージ、rootfs。ほとんどのLinuxは、フラッシュからではなくRAMから実行されます。これは、通常、RAMからの実行中に高速になるためです。したがって、ブートプロセス中に、カーネルttはU-BootによってフラッシュからRAMにコピーされます。もう1つのオプションは、ブートローダーがフラッシュから圧縮されたカーネルをSDRAMに抽出し、カーネルがrootfsをマウントすることです。
メモリは組み込みシステムの制約であるため、組み込みシステムのほとんどはintramfsを使用します。この詳細については、このリンクを参照してください。 https://unix.stackexchange.com/questions/27309/how-do-i-have-linux-boot-with-a-rootfs-in-ram
これとは別に、使用されるほとんどの分布圧縮されたext2ファイルシステムイメージ、Debian 3.1のような他のものはメモリ制限システムで起動するためにcramfsを使用しました。 cramfsイメージは、圧縮解除のために余分なスペースを必要としません。