カスタムROMに手を出したり、Android OSの更新を手動でインストールしたことがあれば、「ファームウェア」という言葉を目にすることがあるかもしれません。 OS のアップデートをフラッシュする場合、ソフトウェアは、デバイス固有のファームウェアまたはハードウェア用に構築される必要があります。 この違いは、すべてのデバイスに Android の最新バージョンを展開するのに時間がかかる理由の一部です。
すぐには理解できませんが、ファームウェアとソフトウェアには決定的な違いがあります。 一言で言えば、ファームウェアはハードウェアのすぐ近くに位置し、ソフトウェアはファームウェアの上に位置しています。 ファームウェアはハードウェアの近くに位置し、ソフトウェアはファームウェアの上に位置します。しかし、それ以上に重要なことがあり、少しクロスオーバーする余地がある分野もあります。
Firmware vs Software
ファームウェアとソフトウェアはどちらも、携帯電話やその他のガジェット内のハードウェアで実行されるコードの断片です。 重要な違いは、それらが何をするように設計されているか、それらがどこに保存されているか、そして、それらがどれだけ簡単に更新および変更できるかということです。 ユーザーが必要なことを行えるようにするためのコードの「トップレベル」です。 これは、スマートフォンのアプリ、ホーム画面のウィジェット、そしてそのすぐ下の Android OS 自体である可能性もあります。 ソフトウェアは通常、Java などの高級言語で記述され、開発を容易にするために多くのライブラリや既製の関数が用意されています。 また、ハードウェアを調整することなくソフトウェアを変更することができるため、アップデートが容易であることも大きなポイントです。
それに比べてファームウェアは、ユーザーが直接操作できるように設計されていません。 その代わり、ファームウェアは、デバイス上で実行される隠れた「最下位レベル」のコードです。 厳密には、さまざまなレベルのソフトウェアを考えることができるように、ファームウェアにもさまざまなレベルがあり得ます。 ファームウェアは、メインCPU上で動作するのではなく、ハードウェアの一部に特化したより小さなプロセッサ上で動作することがよくあります。 例えば、フラッシュメモリードライブのメモリーコントローラーなどがこれにあたります。
Firmware – デバイスの特定のハードウェアを制御および設定する低レベル コード
Firmware は、ハードウェアの動作方法を設定し、その基本機能を提供するためのコードです。 ハードウェアが確実に動作し、上位のソフトウェアがアクセスできるようにするための重要なバックボーンです。 独自のファームウェアを実行するハードウェアには、フラッシュ メモリ チップ、CPU、およびディスプレイが含まれます。 ファームウェアは、その上で動作するソフトウェアに依存するため、アップデートするのは少し難しいかもしれません。
Keeping your smartphone running
Firmware vs Softwareの戦いはスマートフォン内部で行われています。 実は、この2つは、すべてをスムーズに動かすために必要不可欠なものなのです。
スマートフォン内のファームウェアには、カメラモジュール内で実行されるコードが含まれています。 これは、画像の収集と初期処理を行い、ISPやその他の処理コンポーネントにデータを渡します。 同様に、ディスプレイも独自の小さなマイクロプロセッサを持ち、色データ、輝度、ガンマ、およびその他の設定を処理するファームウェアを備えています。 CPU にも、タスク スケジューリング、クロック速度、および電力消費を最適化するための低レベル カーネルという形で独自のファームウェアがあります。
スマートフォン ソフトウェアには、Android OS とその上で動作するアプリがあります。 したがって、Facebook、Chrome、Gmail、および Play Store など、すべてのアプリはソフトウェアです。
お分かりのように、デバイスからソフトウェアを定期的に操作し、更新し、追加し、削除します。 ファームウェアはバックグラウンドにしっかりと残っています。