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