Twitterでフォローしてる方からこんな投稿があったので
自分なりに調べてみました。
面接の質問で「PCの電源を入れてデスクトップが表示されるまでのWindows仕組みを全て知ってる限り説明してください」ってのをやると結構Windows10の知識どれだけあるか分かると思ってる。
— 松屋りょう🍚月30回の牛めし (@RY0_JPN) 2018年9月11日
Step1 : 電源を入れる
このマークがついてるボタンをポチる。
ノートPCはスライドして電源ONするタイプもあります。
Step2 : UEFI BIOS 起動
UEFI BIOSとは
マザーボードに記録されている、電源を入れたら最初に起動するプログラム。
読みはそのまま UEFI BIOS(ゆーいーえふあい ばいおす)でいいそうです。
Windowsを起動するときのUEFI BIOSの役割は大きく2つあって、1つはPC内部のハードウェアが正しく取り付けられているかチェックすること、もう1つは起動デバイスを設定すること。
- POST パワーオンセルフテスト(正しく取り付けられていないと音で知らせる)
- 起動デバイスを設定
Windows10 をクリーンインストールしたとき、EFIシステムパーティションという区画が自動的に作られて、このなかにある Windows Boot Maneger(実体は\EFI\Microsoft\Boot\bootmgfw.efi)を UEFI BIOS が見つけて起動する
UEFI BIOS の画面を開くと、ちゃんと Windows Boot Maneger が見えてます。
EFIシステムパーティションはこちら
※ BIOSの画面で Windows Boot Maneger が見えないときは UFEIがオフの状態。 旧BIOSとの違いについては今回は割愛。
Step3 : ブートマネージャー と ブートローダー
ブートマネージャーの役割は、OSが複数インストールされているとき、どのOSを起動するか選択画面を表示すること。
Windows Boot Manager は選択された Windows のブートローダー(Winload.efi)を読み込んでOSを起動する
マルチブートのときのブートマネージャーとブートローダーはこんな感じ
Step4 : カーネル(ntoskrnl.exe)起動
カーネルの起動に必要な最低限のドライバが読み込まれた後に、カーネルが起動
- 各種デバイスの初期化
- ブートに必要なレジストリの読み込み
- ブートに必要なドライバの読み込み
- セッション マネージャー プロセス(Smss.exe)に制御を渡す
Step5 : セッション マネージャー(Smss.exe)起動
たくさんのプロセスが動き始める
- 各種セッションの初期化
- 残りのレジストリの読み込み
- 残りのドライバの読み込み
- ログオン処理(winlogon.exe)に移行
Step6 : ログオン画面(winlogon.exe)
- おなじみのログオン画面(LogonUI.exe)を表示
- ユーザー認証
- ユーザー名とパスワードの入力を受け付ける
- 入力された情報は LSASS(ローカルセキュリティ認証サブシステムサーバー、lsass.exe)に渡され、ローカルアカウントなら「SAM(Security Authentication Manager)」、ドメインアカウントなら Active Directory のドメインコントローラーから取得したユーザー情報と照合して、正しいログオン情報であるかどうか検証される
- 認証されたらユーザーログオンアプリケーション(Userinit.exe)を起動
Step7 : デスクトップ表示
- ログインユーザーのセッション作成(Userinit.exe)
- Explorer.exe が起動
- ユーザー固有(HKCU)のレジストリ読み込み
- ログオンスクリプト、スタートアッププログラム実行
- デスクトップの表示
- Explorer.exe が起動
Process Monitor でログを取ってみたりしたのですが、いまいち使い方が…
間違いがあれば、ご指摘いただけたら幸いです。
参考リンク
- PCと解
https://pctrouble.net/ - Windows 10 PC UEFI BIOS(UEFI)の役割としくみ
http://dxr165.blog.fc2.com/blog-entry-256.html - 誰でもわかるデバイスドライバ講座
https://sciencepark.co.jp/device_driver/dvdr/report-14/ - PC・Windowsの起動についてメモ
http://lsair.html.xdomain.jp/a/e/g13_128_pcwindows.html - @IT > Windows Server Insider > 第7回 特権的な操作を制限するUAC(ユーザーアクセス制御)
http://www.atmarkit.co.jp/ait/articles/1503/19/news131_2.html - Windows 8 でお届けする高速な起動
https://blogs.msdn.microsoft.com/b8_ja/2011/09/14/windows-8-17/