- ファームウェアとソフトウェアの違いは何ですか?
- ファームウェアとOSの違いは何ですか?
- ブートローダーはファームウェアですか?ビオスです。GNU grubはどうですか?GRUBソフトウェアまたはファームウェアですか?
回答:
従来、ファームウェアは、ハードウェアデバイスがオペレーティングシステムまたは選択したバイナリ(ソフトウェア)を起動およびロードするために必要な変更不可能なROMにあるCPUコードです。時々、バイナリの選択が与えられず、ブート部分のファームウェアに接続されたものが使用されます。
すべてのCPUには古典的な問題があります。メモリから命令をフェッチするため、CPUの起動時に何らかのプログラム済みメモリが固定アドレスに存在している必要があります。この目的のためにファームウェアが存在します。一部のファームウェアには、後のプログラムがサービスに使用できるコードもあります。BIOSファームウェアは、DOSが基本入出力に使用した多くの機能を公開します(そのためBIOSは基本入出力システムの略です)。
区別は完全に明確ではありません。一部の(ほとんどの)WLANカードは、機能を開始する前にファームウェアをロードする必要があります。ただし、通常、デバイスには小さなファームウェアがあり、そのジョブは、デバイスがオペレーティングシステムによって起動されたときにUSBバス経由でメインの「ファームウェア」を受け入れ、ロード時に制御を引き継ぐことです。ほとんどの人は、すべてがファームウェアだと言うでしょう。
EEPROMとフラッシュメモリがより一般的になったため、ファームウェアは通常、書き込み不可のROMにはなく、フラッシュメモリに常駐し、変更できます。フラッシュメモリの出現により、ファームウェアとソフトウェアの区別は今日ぼやけています。ただし、長年にわたって変わっていないことの1つは、CPUは依然としてCPUであり、起動するために起動時に見えるようにするには、何らかのコードまたはファームウェアが必要であることです。
CPUはこれまで以上に多くのデバイスに搭載されているため、バグの場合にファームウェアを開発して更新できるようにすることは大きな問題であり、CPUを搭載した多くのハードウェアデバイスにはファームウェア更新インターフェイスがありますが、文書化されていない場合があります。
ファームウェアを使用して、OSをロードできます。ブートローダーまたはブートローダーをロードするコードを含めることができます。ファームウェアと同じ場所にOSイメージを保存し、ファームウェアの起動時コードにOSをロードさせることができます(携帯電話がこれを行います)。原則として、PC BIOSにはブートローダーは含まれません。U-boot(PC用ではない)は、オペレーティングシステムを直接読み込む「ファイルシステム対応」ファームウェアの例です。
ファームウェアは通常、完全なオペレーティングシステムのすべての機能を備えているわけではありません。これは、シンプルな方が信頼性が高いという原則のためです。最も単純なファームウェアは、最小限のハードウェアを初期化し、セクターをロードするか、ストレージデバイスからブロックして、実行をスローするだけです。これはプログラムが簡単であるため、バグがないことを簡単に確認できます。起動時ファームウェアのバグは、特にデバイスの災害を引き起こす可能性があります。
ファームウェアはソフトウェアですが、ディスクに保存されるのではなく、通常は更新できるようにフラッシュ可能なEEPROMに保存されます。
ファームウェアはある意味ではオペレーティングシステムですが、そのデバイスを制御するためだけのものであるため、より制限的で単一目的です。一方、OSは、あらゆる種類のソフトウェアを複数のハードウェアデバイスで実行できる汎用システムです。
いいえ、ブートローダーはディスク上に存在するソフトウェアであるため、ファームウェアではありません。はい、BIOSは(フラッシュ可能な)チップ上に存在するためです。再び、それは強固ではない、ためない、GRUBは(それへのハードウェア・コンポーネントが存在しない)のいずれかのファームウェアではない、それは(とすることができる)が、その場合、チップ上にインストールすることができたものの、ディスク上に存在するソフトウェアであるだろうファームウェアである。
違いは、基本的にコードが存在する場所にあります。一般に、ファームウェアはある種のEPROMまたは組み込みフラッシュメモリに焼き付けられますが、ソフトウェアは大容量記憶装置に保存されます。
デバイスのOSは、ファームウェアまたはソフトウェアに常駐する場合があります。PCのファームウェア(BIOS)は、ソフトウェアOS(Windows / Linux /など)が利用できる低レベルのサービスを提供するだけです。モバイルデバイスでは、エントリOSは通常ファームウェアにあります。
(1)の定義では、コンピューターのBIOSはファームウェアですが、ハードディスクにあるブートローダーはソフトウェアです。
境界は少しあいまいになります。
ソフトウェアは通常、コンピューターが実行できる任意の命令またはルーチンです。
ファームウェアは通常、機能を実行するためにハードウェアにロード/ロードされる特定の命令(ソフトウェア)です。
ほとんどすべてのハードウェアには、何らかのファームウェアが含まれていると思います。
繰り返しますが、どこで起動および停止するかについての決定的なガイドはないと思います-すべてのファームウェアとは、デバイス内のチップに合わせてコンパイルされるソフトウェアです。
ファームウェアとは何かという2番目の質問については、ブートローダーはそうではなく、BIOSはそうであり、grubはそうではないと言うでしょう。
これは線を引くのが非常に難しいですが... ...私が見る方法は、BIOS(現在のEFI)はマザーボードのファームウェアであり、ハードドライブはそれ自身のファームウェアを持っているということです。
そのため、ブートローダー/ grubは純粋なソフトウェアです。ハードドライブでタスクを実行できますが、実際にハードウェアを直接制御するわけではありません。
Iphone / Ipadなどの組み込みデバイスを使用する場合、ファームウェアはどこで終了し、ソフトウェアはどこから始まりますか?IOSをファームウェアと見なす場合は、Windowsなどを使用してください。
私にとって、これは境界がデバイスのメーカーまたはベンダーがあなたにコントロールを許す場所であり、実際に固定されたもの/正確な科学ではないことを示しています。
例えば、
さらに複雑にする-私が要求に応じて言うとき、これは他のソフトウェア内のドライバーからである
さて、iPad、またはiPhone、またはその他の組み込みデバイス...
だから...まとめると...
私にとっては、ファームウェア=純粋なソフトウェアがデータとして購入されるデバイスに付属するソフトウェアと言いますが、他の人が違うと言うかもしれません!
ファームウェアとオペレーティングシステムの両方は、デジタルシステムが適切に起動して実行するために非常に重要であり、これらの両方がどのように機能するかについて説明します。スマートフォンのスイッチをオフにし、スマートフォンの電源ボタンをオンにした後にスイッチをオンにすると、このコマンドは不揮発性メモリでファームウェアのプログラムを含むBIOSチップに移動します。このBIOSチップファームウェアは動作を開始し、ファームウェアはコマンドを与えますRAMとROMの両方向で、コマンドramがRomからオペレーティングシステムコードを、ROMに別のコマンドを送信して、オペレーティングシステムのコピーをRAMに渡し、そのシステムの他のすべてのコンポーネントをアクティブにします。