回答:
ファームウェアは、デバイスで実行されるソフトウェアです。ドライバーは、オペレーティングシステムにデバイスとの通信方法を伝えるソフトウェアです。すべてのデバイスにファームウェアがあるわけではなく、ある程度のインテリジェンスを備えたデバイスのみです。
私はあなたが何を言っているのか正確にはわかりません...一般的に言えば、ファームウェアは「ブート」とは何の関係もありません...おそらくあなたが求めているのは、ファームウェアを備えたデバイスには常にデバイスにファームウェアがインストールされている、または、起動後にロードされますか。それがあなたが求めているものである場合、答えはノーです...
最も一般的には、ファームウェアを備えたデバイスでは、ファームウェアがデバイスにプログラムされています(ROMチップまたはプログラマブルROMチップを使用)が、初期化時にファームウェアがデバイスにロードされるデバイスもあります。このように動作するネットワークカードやウェブカメラを思い浮かべることができますが、他にもあると確信しています。
only devices with some level of intelligence have firmware
?逆に言うと、単純な(電子)デバイスにはオペレーティングシステムはないが、ファームウェアはあるかもしれません。
ファームウェアは、ハードウェアを操作するために必要な低レベルの詳細を実装し、API / ABIをより高いレベルに提供します。デバイスドライバーは、OSとファームウェアによって公開されるAPI / ABIの間のアダプターを提供します。
ファームウェアの最新の定義または一般的な使用法は、特定のソフトウェア機能とは関係ありません。ファームウェアは、ハードドライブなどの大容量記憶装置ではなく、不揮発性半導体メモリ(PROM、EEPROM、フラッシュなど)チップに格納される単なるソフトウェアです。格納されているソフトウェアは、モノリシックリンクバイナリであるか、ローダー、カーネル、およびアプリケーションモジュールで構成されています。(OTOH初期化を完了するためにLinuxカーネルによる「ファームウェア」のロードを必要とするPC用のTVチューナーカードを見てきました。)
この用語の起源は、プロセッサ制御ロジックとハードワイヤードロジックに関係しています。ハードドライブに保存されているソフトウェアは、簡単に変更および更新できます。ハードワイヤードロジックの改訂と更新には、ボードまたはモジュールの再設計と交換が必要でした。中盤は、ソフトウェアを実行してハードウェアを制御するプロセッサでした。ソフトウェアは、呼ばれた会社の間で妥協点を反映するウェアソフト対ウエア、ハードワイヤードロジックを。元々、ファームウェアはボードのモジュール性を維持するためにROM、PROMまたはEPROMチップに保存されていました。EEPROMとフラッシュチップの進歩により、ファームウェアのインサーキットアップデートとオンボードアップデートが可能になりました。
プロセッサ(および周辺機器)がより小さく、より安く、より少ない電力を必要とするようになるにつれて、あらゆる種類のデバイス/アプライアンスにそれらを埋め込む可能性が広がりました。これらのデバイスを堅牢で安全に動作させるソフトウェアを作成するために、ソフトウェアはハードドライブではなくフラッシュメモリチップに保存されます。また、デバイスが小さくなり、ずっと安くなります。ファームウェアという用語は、組み込みプロセッサを備えたデバイス/アプライアンス内のすべてのソフトウェアを含むように拡張されました。ただし、格納されたコードの一部はハードワイヤードロジックの置き換えとは関係がありません。
ファームウェアは、永続メモリ、プログラムコード、およびそこに保存されているデータの組み合わせです。ファームウェアを含むデバイスの典型的な例は、信号機、家電、デジタル時計、コンピューター、コンピューター周辺機器、携帯電話、デジタルカメラなどの組み込みシステムです。これらのデバイスに含まれるファームウェアは、デバイスの制御プログラムを提供します。
実際、SuperUserのdrivers
タグは次のように定義されています:
ドライバーは、デバイスドライバーまたはソフトウェアドライバーとも呼ばれ、高レベルのコンピュータープログラムがハードウェアデバイスと対話できるようにするソフトウェアです。コンピュータープログラムが特定のハードウェアデバイスとの対話を要求すると、ドライバーは、デバイスとドライバーを呼び出すコンピュータープログラム間の命令と出力の変換を処理します。
そして、firmware
タグが定義されます:
一般に、ソフトウェアとファームウェアの違いは、ハードウェアと相互作用するレベルです。ファームウェアはハードウェアの非常に低いレベルで相互作用し、ソフトウェアは高いレベルで相互作用します。ファームウェアは通常、ハードウェアの基本的なタイミング、制御、機能を制御します。
もともと私はそれfirmware
がチップまたはボードに直接インストールされてそこに住んでいると思ったのでdriver
、オペレーティングシステムの上にインストールする間、「フラッシュ」する必要があります。
結論:
Firmware
ハードウェアが何かを「実行」しdrivers
、ソフトウェアがハードウェアとやり取りできるようにします。