\r\n\r\n

パソコンの電源を入れると、本当はどうなっているのか?

コンピュータの電源を入れると、「ブート(boot)」というプロセスが行われます。この言葉は「ブートストラップ(bootstrap)」という言葉に由来しています。ここでは、Windows PC、Mac、Linuxのいずれのシステムでも、バックグラウンドで何が起こっているかを説明します...

コンピュータの電源を入れると、「ブート」プロセスを経る。「ブートストラップ」という言葉が語源である。ここでは、Windows PC、Mac、Linuxのいずれのシステムでも、バックグラウンドで何が起こっているかを説明します。

ハードウェアブート

電源ボタンを押すと、マザーボード、CPU、ハードディスク、ソリッドステートドライブ、グラフィックプロセッサなど、コンピュータに搭載されているすべてのコンポーネントに電源が供給されます。

電源を供給するハードウェアは「パワーサプライ」と呼ばれる。一般的なデスクトップパソコンでは、ケースの隅にある箱のようなもの(上の写真の黄色い部分)で、AC電源ケーブルが接続されているところです。

CPUのロード UEFIまたはBios

電源が入ったので、CPUは自動的に初期化され、通常はマザーボードのチップに格納されている小さなプログラムを探します。

かつて、パソコンにはBIOS(Basic Input/Output System)と呼ばれるものが搭載されていた。最近の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がない場合、ビープ音とエラー表示でブートプロセスを停止します。これはブートセルフテスト処理と呼ばれるものです。

この間、画面上に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がある場合、システムはハードディスクからの起動を試みる前に、まずそのDVDからの起動を試みるかもしれません。

従来、BIOSはディスクの先頭にある特別なブートセクターであるMBR(Master Boot Record)を見ていました。MBRには「ブートローダ」と呼ばれる、残りのOSをロードするコードが含まれています。BIOSはブートローダを実行し、そこから実際のOSを起動するようになりますWindowsまたはLinux。

UEFIを搭載したコンピュータでも、この昔ながらのMBRブート方式でOSを起動することはできますが、通常は代わりにEFI実行ファイルというものを使用します。これらは、ディスクの先頭に格納する必要はない。その代わり、"EFIシステムパーティション "と呼ばれるものに保存されます。

いずれにせよ、原理は同じです。BIOSまたはUEFIはシステム上のストレージデバイスをチェックし、MBRまたはEFIシステムパーティションでアプレットを探し、それを実行します。起動可能なブートデバイスがない場合、ブートプロセスは失敗し、ディスプレイにこのようなエラーメッセージが表示されます。

最近のPCでは、UEFIファームウェアは通常「セキュアブート」として設定されています。これにより、起動元のOSが改ざんされていないこと、低レベルのマルウェアがロードされていないことを確認します。セキュアブートが有効な場合、UEFI はブートローダが適切に署名されているかどうかをブートする前に確認します。

フルOSをロードするブートローダ

ブートローダは、オペレーティングシステムの残りの部分をブートストラップするという大きな仕事をする小さなプログラムです。Windows は Windows Boot Manager (Bootmgr.exe) というブートローダを使い、ほとんどの Linux システムは GRUB を使い、Mac は boot.efi を使っています。

例えば、ブートローダーに問題がある場合、ブートローダーのエラーメッセージが表示され、そのファイルがディスク上で破損していると、ブートプロセスが停止します。

ブートローダは小さなプログラムに過ぎず、ブートプロセスだけを処理するわけではありません。Windowsでは、WindowsブートマネージャーがWindows OSローダーを見つけて起動し、カーネル(Windows OSの中核部分)を動かすために必要な基本的なハードウェアドライバーをロードし、カーネルを起動します。その後、カーネルはシステムレジストリをメモリにロードし、「BOOTu START」とマークされたその他のハードウェアドライバをブート時にロードする必要があります。その後、Windowsカーネルはセッションマネージャプロセス(Smss.exeファイル)を起動し、システムセッションを開始し、他のドライバをロードします。プロセスが続行され、Windowsはバックグラウンドサービスを読み込むと同時に、ログインできるようにするウェルカム画面を表示します。

Linuxでは、GRUBブートローダがLinuxカーネルをロードします。initは、ブートサービスやログインプロンプトに至るまでの他のユーザプロセスを処理します。

この複雑なプロセスは、操作を正しい順番で行うことで、すべてを正しく読み込むための一つの方法なのです。

ちなみに、いわゆる「ブートローダー」は、実際にはシステム起動時ではなく、ユーザーアカウントにログインしたときに読み込まれます。ただし、一部のバックグラウンドサービス(Windowsの場合)やデーモン(LinuxやmacOSの場合)は、システム起動時にバックグラウンドで起動されます。

シャットダウン処理もかなり複雑で、ここではWindows PCをシャットダウンまたはログオフしたときの処理を説明します。

画像出典:Suwanwanle/Shutterstock.comサイト、DR image/Shutterstock.comサイト。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ