| この記事の要点 |
|
ファームウェアとは
ファームウェア (Firmware) は、ハードウェアに組み込まれてそのハードウェアを直接動かすための専用ソフトウェアです。アプリケーションソフトとは違って、機器の電源を入れた直後から動き始め、ハードウェアの初期化、外部 OS の起動、機器固有の制御といった役割を担います。ユーザが普段触ることはなく、機器の中の Flash メモリや EEPROM に書き込まれています。
ソフトウェアとの位置づけ
| 区分 | 例 | 特徴 |
|---|---|---|
| アプリケーション | ブラウザ / 表計算 / ゲーム | ユーザが起動・終了する |
| OS(システムソフトウェア) | Windows / Linux / iOS | アプリとハードの仲介 |
| ファームウェア | BIOS/UEFI / ルータ OS / IoT 機器の中身 | ハードに常駐、機器固有、電源直後から動く |
| マイクロコード | CPU 内部の命令制御 | ファームウェアより更に低層 |
身近なファームウェアの例
| 機器 | ファームウェアの役割 |
|---|---|
| PC のマザーボード | BIOS / UEFI がハード初期化と OS ローダ起動 |
| HDD / SSD | セクタ管理、ウェアレベリング、SMART 提供 |
| 無線ルータ | 管理 OS。Wi-Fi / NAT / DHCP / 管理画面 |
| プリンタ / 複合機 | 用紙搬送 / インク制御 / ネットワーク機能 |
| スマートウォッチ / IoT | センサ制御、BLE、OTA 更新 |
| 家電のマイコン | エアコン / 炊飯器 / 給湯器の動作プログラム |
| カメラ / レンズ | センサ制御、AF アルゴリズム改善 |
| キーボード / マウス(高機能機) | マクロ / ライティング制御 |
どこに保存されているか
| 媒体 | 性質 |
|---|---|
| Flash メモリ(NOR / NAND) | 書き換え可能。現在主流 |
| EEPROM | 少量データの書き換えに使用 |
| マスク ROM | 製造時に固定。書き換え不可。古い機器 |
| OTP (One Time Programmable) | 1 回だけ書き込み可能。ブートローダなどで利用 |
BIOS と UEFI
PC を起動すると最初に動くのがマザーボードのファームウェアです。古くは BIOS、現在はその後継である UEFI が主流です。
| 項目 | BIOS | UEFI |
|---|---|---|
| 起動ディスク | MBR(最大 2TB) | GPT(>2TB 可) |
| UI | テキスト | グラフィカル、マウス可 |
| セキュアブート | 無し | Secure Boot で署名検証 |
| 動作モード | 16bit リアルモード | 32/64bit プロテクトモード |
| 起動速度 | 遅め | 速い |
ファームウェアアップデート
ファームウェアの更新は、機器ベンダから配布されるファイルを書き込み直して機能追加 / バグ修正 / セキュリティパッチを適用する作業です。最近は機器がインターネット経由で自動取得・適用する OTA (Over-The-Air) 更新が一般的です。
- ベンダのサイトでファームウェアファイルをダウンロード(または OTA で配信)
- 機器が署名検証を行い、改ざんがないことを確認
- 新ファームウェアを Flash 上の予備領域に書き込み
- 再起動時に新領域から起動
- 正常起動を確認したら旧領域を破棄、失敗ならロールバック
文鎮化(Brick)に注意
更新中に電源断 / 通信切断 / 誤ったファイルでフラッシュが半端な状態になると、機器が二度と起動しなくなることがあります。これを俗に「Brick(レンガ化)」「文鎮化」と呼びます。対策として、最近の機器は次のような仕組みを持ちます。
- デュアルバンク: 旧領域と新領域を別々に持ち、新が失敗したら旧で起動
- ロールバック: 起動失敗を検出したら自動で旧バージョンへ戻す
- リカバリーモード: USB / シリアル / リセット長押しから素のローダを呼べる
- 署名検証: 改ざん・誤ファイル投入を弾く
セキュリティ観点
| 観点 | 説明 |
|---|---|
| 未パッチの脆弱性 | 古いルータが Mirai 等のボットネットに感染。更新を放置しない |
| Secure Boot | 署名のないファームウェアを起動させない仕組み |
| SBOM / 部品表 | ファームウェアに含まれる OSS 一覧を公開し、脆弱性追跡を容易に |
| EOL(サポート終了) | 更新が来なくなった機器は使い続けず置き換え検討 |
| 初期パスワード | 管理画面用の既定パスワードは必ず変更 |
関連
- BIOS — PC マザーボードの古典的ファームウェア
- UEFI — BIOS の後継
- Secure Boot — 署名検証付き起動
- OS — ファームウェアの上で動く
- IoT — ファームウェア更新運用が肝
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09