起動:コンピュータと電子システムが開始する仕組み
起動とは何かを解説。デバイスを開始する処理の流れ、ファームウェア、ブートローダー、カーネル、起動の種類、UEFI、ネットワーク起動、セキュアブート、トラブルシューティングの要点を紹介する。
起動とは
起動とは、電子機器を電源オフまたはリセットされた状態から、ユーザーソフトウェアを実行できる状態へ移行させる一連の操作である。コンピュータなどの電源を用いる機器が初期化されると、内蔵された低水準のファームウェアが各種の確認を行い、主要なシステムを読み込むコンポーネントへ制御を引き渡す。日常的には、このような機器を開始することを「ブートアップする」あるいは単に「ブートする」ともいう。
画像ギャラリー
10 画像一般的な起動シーケンスの段階
実装には違いがあるものの、ほとんどの起動処理は似た進行をたどる。初期段階は恒久的なファームウェアによって実行され、その後に記憶媒体からコードを読み込み、動作環境を開始する段階へ進む。
- 電源投入とファームウェアの初期化 – 最初に読み取り専用メモリーに格納されたファームウェアが動作する。従来のシステムではBIOSを使用し、現代のPCでは一般に、ハードウェアの構成と基本的な検査を行うUEFIまたはBIOSファームウェアを使用する。
- ハードウェアの検出 – ファームウェアは、ディスク、ネットワークインターフェース、入出力コントローラーなどの周辺機器を検出して構成する。これらは総称して周辺機器と呼ばれる。
- 起動デバイスの選択 – ファームウェアは起動デバイスを特定する。対象はローカルディスク、リムーバブルメディア、またはネットワークであり、ブートローダーまたはブートストラップローダーと呼ばれる小さなプログラムを読み込む。
- ブートローダーとカーネルの読み込み – ブートローダーは、オペレーティングシステムのカーネルと任意の初期プログラムをメモリーへ読み込み、それらへ実行を移す。続いてカーネルが高水準のサービスを初期化し、ユーザー空間のオペレーティングシステムのプロセスを起動する。
- サービスの開始とユーザーセッション – システムサービス、グラフィカルインターフェース、またはコマンドインターフェースが開始され、最終的に利用可能な環境となる。
種類と用語
起動にはいくつかの種類が区別される。コールドブート、または電源投入起動は、機器の電源が切れていた後に始まる。ウォームブート、すなわち再起動は、電源を切らずにシステムを再開する処理である。「ブートストラップ」という語は、「自分のブーツのストラップを引っ張って自らを持ち上げる」という慣用句に由来し、小さな初期プログラムが段階的により大きなコンポーネントを読み込むことを表す。同じ語は、架空のフランチャイズを再出発させる意味でも大衆文化に借用され、しばしばリブートと呼ばれる。
現代の方式と技術
ファームウェアと起動方式は時代とともに発展してきた。UEFIは、より豊富なサービス、より高速な起動、および実行前に署名済みソフトウェアを検証するセキュアブート機能への対応を提供する。システムはPXEなどのプロトコルを使用してネットワークから起動することもでき、大規模な導入環境では自動インストールのためによく利用される。組み込み機器やモバイルプラットフォームでは、ハードウェアに適した簡略化された、または専用のブートチェーンが使われる場合がある。多くの場面で、起動シーケンスはデバイスのファームウェアおよび低水準の電子工学と密接に結び付いている。
実用上の重要性と例
起動を理解することは、トラブルシューティング、システム管理、セキュリティに役立つ。一般的な管理作業には、起動デバイスの順序の選択、設定変更のためのファームウェア設定画面への移行、カーネルまたはファイルシステムが破損した場合の復旧モードの利用、複数のオペレーティングシステムが1台のマシンを共有するマルチブート環境の管理が含まれる。仮想マシンやクラウドインスタンスも同様の起動段階を実行するが、一部のハードウェア固有の段階はホストソフトウェアによってエミュレートされる。ファームウェアとブートローダーは、不正なコード実行を防ぐための更新やセキュリティ強化の対象でもある。起動の挙動は、電源投入後に機器がどれほど速く利用可能になるか、また障害や更新にどのように応答するかに影響する。
注目すべき詳細と区別
補足として、OSの読み込みを開始する小さなプログラムは、ブートストラップローダーまたはブートローダーと呼ばれることが多く、概念上はオペレーティングシステムそのものとは区別される。起動の初期段階で実行されるツールやユーティリティは、通常、低水準のソフトウェアと見なされる。技術者はデスクトップマシンを「ボックス」と呼び、「ボックスを起動する」と言うことがある。「インターネット」と「ウェブ」は関連のない専門用語の例だが、技術用語が日常語に入り込むことを示している(インターネット、ウェブ)。
総じて、起動はコンピューティングの基盤となる処理である。ファームウェア、ハードウェア検査、ブートローダー、カーネル初期化から成る一連の手順によって、停止しているハードウェアを、アプリケーションを実行可能な機能中のシステムへ確実に移行させる。
関連項目
著者
AlegsaOnline.com 起動:コンピュータと電子システムが開始する仕組み Leandro Alegsa
URL: https://ja.alegsaonline.com/art/13053