はじめに
私たちが普段何気なく行っている「電源ボタンを押す」という操作。
その背後では、何が行われているのか、あまり気にしたことがなかったので調べたり、ChatGPTさんに聞いてみたりして調査しました。
順を追って説明していけたらと思います。
いざ電源ポチ!
電源供給とハードウェアの初期化
電源ボタンを押すと、電源ユニット(PSU)がマザーボードやその他のハードウェアに電力を供給されます。
同時に、後述のハードウェアの自己診断(Power-On Self Test, POST)が開始されます。
POST(パワーオンセルフテスト)
ハードウェアの自己診断、いわゆるPOSTは、コンピュータの基本的な機能を確認するためのテストです。
具体的にはこの辺りを行なっています
- メモリやCPUの動作確認
- グラフィックカードやキーボードの接続チェック
- エラーがあればビープ音やエラーメッセージで通知される
POSTが終わった後はBIOSまたはUEFIが起動されます
BIOSまたはUEFIの起動
BIOSとUEFIとは
どちらも同じファームウェアと呼ばれるものですが下記のような違いがあります
- BIOS(Basic Input/Output System): 名前の通りコンピュータ起動時のInput/Output(入力と出力)を制御するもの。GUIが起動する前の入力出力で使う最低限の機能。
- UEFI(Unified Extensible Firmware Interface): BIOSより高速でセキュアな起動が可能。近年のPCはこちらが多い。
他にもディスクのパーティション形式など違いはありますが、UEFIはBIOSの後継者として作られた存在くらいに思うのが良いかと思います。
これらのシステムがハードウェアの基本設定を行い、OSを起動するための準備をします。
ブートデバイスの選択
次にOSの起動に向けての準備です。
BIOS/UEFIは、どのデバイス(ハードディスク、SSD、USBなど)からOSを読み込むかを決定します。
コンピューターが起動する際に読み込むドライブの順番を「ブート順序」と言います。
通常は、OSがインストールされているHDDを1番目に起動するように設定されていますが、ブート順序は変更することもできます。
ブートローダーとは
ブートローダーは、OSを起動するための小さなプログラムです。役割としては下記が挙げられます。
- OSカーネルをメモリに読み込む
- 必要な設定ファイルやドライバを準備する
オペレーティングシステム(OS)の起動
いよいよOS(Windows、Macなど)の起動です。このステップでは下記を行なっています。
カーネルの読み込み
カーネルとは、OSの核となる部分で、ハードウェアとソフトウェアをつなぐ役割を果たします。カーネルがメモリ上で展開され、コンピュータの基本動作が可能になります。
ドライバとサービスの初期化
ハードウェアを制御するためのドライバや、ネットワークやファイルシステムなどの重要なサービスが開始されます。
ユーザーインターフェースの起動
最後に、デスクトップ環境やログイン画面が表示され、ユーザーが操作可能な状態になります。
よくある最初のログイン画面とかですね。
起動が遅い原因とその改善方法
PCを起動する際にメチャクチャ時間がかかる時はこの辺を疑うべしです。
不要なスタートアッププログラム
起動時に自動的に実行されるプログラムが多すぎると、時間がかかる場合があります。
定期的にスタートアッププログラムを見直すのが良いかと思います。
ハードウェアの問題
古いハードディスクを使っている場合は読み込みなどに時間がかかったりします。
SSDへの交換するなどをすると速度が改善することが多いです。
BIOS/UEFIの最適化
前述の通り、ブート順序によっては必要なプログラムの読み込みが後回しになることがあります。
ブート順序を最適化し、不必要なデバイスからの読み込みをスキップすることで時間を短縮できます。
まとめ
電源をポチってからログイン画面が出てくるまで色々奥深いことをやってらっしゃる…改めて調べてみて良かったと思います。
順序を簡単にまとめると
- POSTでハードウェアの確認
- BIOS/UEFIで基本設定とブートデバイスの選択
- ブートローダーでOSカーネルを読み込み
- OSがカーネル、ドライバ、サービスを初期化
これからは日々の感謝の分、少し力を込めて電源ボタンを押すことにします