起動時にファームウェアをロードする必要があるのはなぜですか?

起動時にファームウェアをロードする必要があるのはなぜですか?

WiFiカードファームウェアを含むパッケージを見たことがあります。

また、Debianのインストール中に無料でないファームウェアをロードするように求められました。それ以外の場合、私のWiFiカードは機能しません。

Linuxは起動時にこのファームウェアをロードしているようです。

しかし、起動プロセス中にファームウェアをロードする方法は?

ルーターとグラフィックカード用のファームウェアがあることを知っています。ただし、不揮発性メモリ(フラッシュメモリ)に保存されます。

それでは、起動時にファームウェアをどのようにロードできますか?揮発性メモリ(RAM)にロードされているようです。なぜ他のファームウェアのようにフラッシュメモリに保存されないのですか?

答え1

価格とスピードの問題だと思います。
私が知る限り、不揮発性メモリは通常RAMよりも高く(同じサイズ)遅いです。

また、低予算ルーターにはファームウェアをロードするためのHDDがインストールされていないことが多く、一部のドライバーは初期化中にファームウェアをグラフィックカードにロードします。

答え2

Wi-Fiカードは非常に複雑なモンスターです(ローミング、暗号化、メディアアクセスプロトコルなど、どのように機能するかについての概要をご覧ください)。タスクのいくつかはネットワークに参加するときの交渉であり、これはカードの外でも素晴らしい処理をすることができます。したがって、ハードウェアではなく、カードやホスト上で実行されるソフトウェアでほとんどの機能を実装する方が安いです。この点と比較的頻繁な変更(暗号化、プロトコルの詳細、国で許可されているチャネルなど)を考慮すると、カードのROMに書き込むのではなく、起動時にロードするのが合理的です。

関連情報