コンピュータの電源を入れると、「ブートアップ」プロセスが実行されます。このプロセスは、「ブートストラップ」という言葉から来た用語です。 Windows PC、Mac、Linux システムのいずれを使用しているかに関係なく、バックグラウンドで何が起こっているかを示します。
ハードウェアの電源がオンになります
電源ボタンを押すと、コンピューターはそのコンポーネント (マザーボード、CPU、ハードディスク、ソリッド ステート ドライブ、グラフィックス プロセッサー、その他コンピューター内のすべてのもの) に電力を供給します。
電力を供給するハードウェアは「電源」と呼ばれます。一般的なデスクトップ PC の内部では、ケースの隅にある箱のように見え (上の写真の黄色のもの)、そこに AC 電源コードを接続します。
CPU は UEFI または BIOS をロードします
電力が供給されると、CPU は自身を初期化し、通常はマザーボード上のチップに保存されている小さなプログラムを探します。
以前は、PC には BIOS (Basic Input/Output System) と呼ばれるものがロードされていました。 最近の PC では、CPU が代わりに UEFI (Unified Extensible Firmware Interface) ファームウェアをロードします。これは、古いスタイルの BIOS の最新の代替品です。ただし、さらに混乱させるために、一部の PC メーカーは依然として UEFI ソフトウェアを「BIOS」と呼んでいます。
UEFI または BIOS はハードウェアをテストして初期化します
BIOS または UEFI ファームウェアは、マザーボード上の特別な場所から構成設定を読み込みます。従来は、これは CMOS バッテリー によってバックアップされたメモリ内にありました。 BIOS または UEFI 設定画面で低レベルの設定を変更した場合、ここにカスタム設定が保存されます。
CPU は UEFI または BIOS を実行し、CPU 自体を含むシステムのハードウェアをテストおよび初期化します。たとえば、コンピュータに RAM が搭載されていない場合、ビープ音が鳴り、エラーが表示され、起動プロセスが停止します。これは 、POST (Power On Self Test) プロセス として知られています。
このプロセス中に、PC 製造元のロゴが画面に表示される場合があります。多くの場合、ボタンを押して、ここから BIOS または UEFI 設定画面にアクセスできます。ただし、最近の PC の多くはこのプロセスを非常に高速に実行するため、ロゴを表示する必要がなく、 Windows ブート オプション メニュー から UEFI 設定画面にアクセスする必要はありません。
UEFI はハードウェアを初期化するだけでなく、それ以上のことを行うことができます。それは本当に小さなオペレーティングシステムです。たとえば、Intel CPU には Intel Management Engine が 搭載されています。これにより、ビジネス PC のリモート管理を可能にするインテルのアクティブ マネジメント テクノロジーの強化など、さまざまな機能が提供されます。
UEFI または BIOS がブートデバイスにハンドオフする
ハードウェアのテストと初期化が完了すると、UEFI または BIOS は PC の起動の責任をオペレーティング システムのブート ローダーに渡します。
UEFI または BIOS は、オペレーティング システムを起動するための「 ブート デバイス 」を探します。これは通常、コンピュータのハードディスクまたはソリッド ステート ドライブですが、CD、DVD、USB ドライブ、またはネットワークの場所である場合もあります。ブート デバイスは、UEFI または BIOS セットアップ画面内から構成できます。複数のブート デバイスがある場合、UEFI または BIOS は、リストされている順序で起動プロセスをそれらのデバイスに引き渡そうとします。したがって、たとえば、光学ドライブに起動可能な DVD がある場合、システムはハード ドライブから起動する前に、そこから起動しようとする可能性があります。
従来、BIOS はディスクの先頭にある特別なブート セクターである MBR (マスター ブート レコード) を調べていました。 MBR には、「ブートローダー」として知られる、オペレーティング システムの残りの部分をロードするコードが含まれています。 BIOS はブートローダーを実行し、そこからブートローダーを取得して、実際のオペレーティング システム (Windows や Linux など) の起動を開始します。
UEFI を搭載したコンピューターは、引き続きこの古いスタイルの MBR ブート方法を使用してオペレーティング システムをブートできますが、通常は代わりに EFI 実行可能ファイルと呼ばれるものを使用します。これらはディスクの先頭に保存する必要はありません。代わりに、それらは「 EFI システム パーティション 」と呼ばれるものに保存されます。
どちらの場合でも、原理は同じです。BIOS または UEFI は、システム上のストレージ デバイスを調べて、MBR または EFI システム パーティション上の小さなプログラムを探し、それを実行します。起動可能なブート デバイスがない場合、起動プロセスは失敗し、そのことを示すエラー メッセージがディスプレイに表示されます。
最近の PC では、UEFI ファームウェアは通常「 セキュア ブート 」用に構成されています。これにより、起動するオペレーティング システムが改ざんされておらず、低レベルのマルウェアが読み込まれないことが保証されます。セキュア ブートが有効になっている場合、UEFI はブートローダーを開始する前に、ブートローダーが適切に署名されているかどうかをチェックします。
ブートローダーは完全な OS をロードします
ブートローダーは、オペレーティング システムの残りの部分を起動するという大きなタスクを担う小さなプログラムです。 Windows は Windows ブート マネージャー (Bootmgr.exe) という名前のブートローダーを使用し、ほとんどの Linux システムは GRUB を 使用し、Mac は boot.efi と呼ばれるものを使用します。
ブートローダーに問題がある場合、たとえば、ディスク上のファイルが破損している場合は、 ブートローダー エラー メッセージが 表示され、ブート プロセスが停止します。
ブートローダーは単なる 1 つの小さなプログラムであり、それ自体ではブート プロセスを処理しません。 Windows では、Windows ブート マネージャーが Windows OS ローダーを 検索して起動します。 OS ローダーは、Windows オペレーティング システムの中核部分であるカーネルの実行に必要な必須のハードウェア ドライバーをロードし、カーネルを起動します。次に、カーネルはシステム レジストリを メモリにロードし、「BOOT_START」とマークされた追加のハードウェア ドライバもロードします。これは、ブート時にロードする必要があることを意味します。次に、Windows カーネルはセッション マネージャー プロセス (Smss.exe) を起動し、システム セッションを開始して追加のドライバーを読み込みます。このプロセスが続行され、Windows はバックグラウンド サービスとサインインできるようこそ画面を読み込みます。
Linux では、GRUB ブート ローダーが Linux カーネルをロードします。カーネルは、init システム (最新の Linux ディストリビューションのほとんどでは systemd) も開始します。 init システムは、ログイン プロンプトに至るまでのサービスやその他のユーザー プロセスの開始を処理します。
この複雑なプロセスは、正しい順序で実行することで、すべてを正しく読み込むための単なる方法です。
ちなみに、いわゆる「 スタートアップ プログラム 」は、実際にはシステムの起動時ではなく、ユーザー アカウントにサインインするときに読み込まれます。ただし、一部の (Windows の場合) または (Linux および macOS の場合) は、システムの起動時にバックグラウンドで開始されます。
シャットダウンプロセスもかなり複雑です。 Windows PC をシャットダウンまたはサインアウトすると、次のことが起こります 。
画像クレジット: Suwan Waenlor /Shutterstock.com、DR-images /Shutterstock.com 、





