ファームウェアとデバイスドライバーの違いと関係


27
  1. ファームウェアとデバイスドライバーはどのように異なり、関連していますか?私は両方の制御装置を考えますか?
  2. ドライバーはOSで実行/起動する必要がありますが、ファームウェアは常に自己起動しますか?

回答:


24
  1. ファームウェアは、デバイスで実行れるソフトウェアです。ドライバーは、オペレーティングシステムにデバイスとの通信方法を伝えるソフトウェアです。すべてのデバイスにファームウェアがあるわけではなく、ある程度のインテリジェンスを備えたデバイスのみです。

  2. 私はあなたが何を言っているのか正確にはわかりません...一般的に言えば、ファームウェアは「ブート」とは何の関係もありません...おそらくあなたが求めているのは、ファームウェアを備えたデバイスには常にデバイスにファームウェアがインストールされている、または、起動後にロードされますか。それがあなたが求めているものである場合、答えはノーです...

最も一般的には、ファームウェアを備えたデバイスでは、ファームウェアがデバイスにプログラムされています(ROMチップまたはプログラマブルROMチップを使用)が、初期化時にファームウェアがデバイスにロードされるデバイスもあります。このように動作するネットワークカードやウェブカメラを思い浮かべることができますが、他にもあると確信しています。


ありがとう!2では、セルフブートによって、ファームウェアが他の人ではなく自分自身で実行されている場合、ドライバはそれ自体ではなくOSによって実行されていることを意味しますか?en.wikipedia.org/wiki/Operating_systemの
Tim

1
ファームウェアはハードウェアデバイス自体によって実行されます...私はそれが質問に答えると思いますか?これを考慮してください:多くの非コンピューターデバイスには、デジタルカメラ、DVDプレーヤー、携帯電話などの「ファームウェア」があります。したがって、明らかにこれらの場合、ファームウェアはデバイス自体に完全に内蔵されています。これらのデバイスの1つをコンピューターに接続した場合にのみ、ドライバーが必要です
Flimzy

1
ありがとう!en.wikipedia.org/wiki/Computer_softwareから:「ファームウェアは、電気的にプログラム可能なメモリデバイスに保存されることが多い低レベルのソフトウェアです。ファームウェアは、ハードウェアのように扱われ、他のソフトウェアプログラムによって実行(実行)されるため、その名前が付けられています」ファームウェアは他のソフトウェアプログラムまたはハードウェア自体によって実行されていますか?
ティム

-1なんで言うのonly devices with some level of intelligence have firmware?逆に言うと、単純な(電子)デバイスにはオペレーティングシステムはないが、ファームウェアはあるかもしれません。
セレリタス

@Celeritas:あるレベルのインテリジェンスを備えたデバイスのみがファームウェアを持っているため、ファームウェア(RS-232ポートなど)は持っていません。OS全体(携帯電話、iPod、プログラマブルGPSなど)を備えたデバイスを比較する場合、まったく異なる抽象化レイヤーについて話します。これは、従来の意味での「デバイスドライバー」とはまったく関係ありません。このクラスのアクセスソフトウェアは、多くの場合「デバイスドライバー」と呼ばれますが、実際には、デバイスドライバーの上に実装されたネットワークアプリケーションプロトコル(USBポートまたはBluetoothと通信するものなど)です。
Flimzy

5

ファームウェアは、ハードウェアを操作するために必要な低レベルの詳細を実装し、API / ABIをより高いレベルに提供します。デバイスドライバーは、OSとファームウェアによって公開されるAPI / ABIの間のアダプターを提供します。


1
ありがとう!デバイスドライバーはOSの一部であり、OSカーネルによって実行されますか?ファームウェアはデバイスの一部であり、OSカーネルまたはファームウェア自体によって実行されますか?
ティム

1
デバイスドライバーはOSの一部と見なされ、通常はホストCPUで実行されます。ファームウェアは通常、デバイスによって実行されます。ただし、OSによってデバイスにアップロードされる場合があります。
イグナシオバスケス-エイブラムス

これは受け入れられた答えでなければなりません。
エリックワン

4

ファームウェアの最新の定義または一般的な使用法は、特定のソフトウェア機能とは関係ありません。ファームウェアは、ハードドライブなどの大容量記憶装置ではなく、不揮発性半導体メモリ(PROM、EEPROM、フラッシュなど)チップに格納される単なるソフトウェアです。格納されているソフトウェアは、モノリシックリンクバイナリであるか、ローダー、カーネル、およびアプリケーションモジュールで構成されています。(OTOH初期化を完了するためにLinuxカーネルによる「ファームウェア」のロードを必要とするPC用のTVチューナーカードを見てきました。)

この用語の起源は、プロセッサ制御ロジックとハードワイヤードロジックに関係しています。ハードドライブに保存されているソフトウェアは、簡単に変更および更新できます。ハードワイヤードロジックの改訂と更新には、ボードまたはモジュールの再設計と交換が必要でした。中盤は、ソフトウェアを実行してハードウェアを制御するプロセッサでした。ソフトウェアは、呼ばれた会社の間で妥協点を反映するウェアソフト対ウエア、ハードワイヤードロジックを。元々、ファームウェアはボードのモジュール性を維持するためにROM、PROMまたはEPROMチップに保存されていました。EEPROMとフラッシュチップの進歩により、ファームウェアのインサーキットアップデートとオンボードアップデートが可能になりました。

プロセッサ(および周辺機器)がより小さく、より安く、より少ない電力を必要とするようになるにつれて、あらゆる種類のデバイス/アプライアンスにそれらを埋め込む可能性が広がりました。これらのデバイスを堅牢で安全に動作させるソフトウェアを作成するために、ソフトウェアはハードドライブではなくフラッシュメモリチップに保存されます。また、デバイスが小さくなり、ずっと安くなります。ファームウェアという用語は、組み込みプロセッサを備えたデバイス/アプライアンス内のすべてのソフトウェアを含むように拡張されました。ただし、格納されたコードの一部はハードワイヤードロジックの置き換えとは関係がありません。


次に、大容量ストレージにファームウェアをインストールすることはどういう意味ですか?このDebianパッケージが好きですか?
xuhdev 14

1
@xuhdev-そのDebianパッケージは、さまざまなLinuxデバイスドライバーで使用できるファイルで構成されています。これらのファイルは、Linuxドライバーによって接続デバイスに書き込まれるため、「ファームウェア」と呼ばれます。ファイルには、デバイスの埋め込みuC / uPの操作データまたはコードが含まれている場合があります。デバイスに転送されたこのファイルはデバイスの揮発性メモリにロードされ、デバイスまたはシステムがリセットされるたびにロードする必要があることに注意してください。ホストの大容量記憶装置へのこの「ファームウェア」「インストール」は、単に手順のメカニズム(つまり、パッケージ処理)です。
おがくず

3

誰かがこの質問を最近投稿しました

ファームウェアは、永続メモリ、プログラムコード、およびそこに保存されているデータの組み合わせです。ファームウェアを含むデバイスの典型的な例は、信号機、家電、デジタル時計、コンピューター、コンピューター周辺機器、携帯電話、デジタルカメラなどの組み込みシステムです。これらのデバイスに含まれるファームウェアは、デバイスの制御プログラムを提供します。

実際、SuperUserのdriversタグは次のように定義されています:

ドライバーは、デバイスドライバーまたはソフトウェアドライバーとも呼ばれ、高レベルのコンピュータープログラムがハードウェアデバイスと対話できるようにするソフトウェアです。コンピュータープログラムが特定のハードウェアデバイスとの対話を要求すると、ドライバーは、デバイスとドライバーを呼び出すコンピュータープログラム間の命令と出力の変換を処理します。

そして、firmwareタグが定義されます:

一般に、ソフトウェアとファームウェアの違いは、ハードウェアと相互作用するレベルです。ファームウェアはハードウェアの非常に低いレベルで相互作用し、ソフトウェアは高いレベルで相互作用します。ファームウェアは通常、ハードウェアの基本的なタイミング、制御、機能を制御します。

もともと私はそれfirmwareがチップまたはボードに直接インストールされてそこに住んでいると思ったのでdriver、オペレーティングシステムの上にインストールする間、「フラッシュ」する必要があります。

結論:

Firmwareハードウェアが何かを「実行」しdrivers、ソフトウェアがハードウェアとやり取りできるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.