Ntoskrnl.exe

ntoskrnl.exe ( の略) またはカーネルイメージ () とは、Windows NTカーネル空間のカーネルおよびエグゼキュティブ・レイヤー（実行層）であり、ハードウェア仮想化、プロセスおよびメモリ管理、といった様々なシステムサービスを受け持ち、システムの基本的な部分を構成する。

概要 
ntoskrnl.exeは上層の「エグゼキュティブ」と下層の「カーネル」から構成される。エグゼキュティブはI/O、オブジェクト、セキュリティ、プロセス、プロセス間通信 (IPC)、仮想メモリ、ウィンドウおよびグラフィックの管理を司る。カーネルはスレッドスケジューリング、第1レベル割り込みハンドリング、 () などの基本的なオペレーティングシステムサービスを提供する。

技術詳細

ファンクション
Windowsカーネルは変数名でなく型名を表すハンガリアン記法を用いてコーディングされている。ntoskrnlのファンクション名はそのコンポーネントを示すプリフィクス（接頭辞）によって定義される。そのうちの一部を次の表に掲げる。

初期化処理 
カーネルは制御を受け取る時に、パラメーターである構造体へのポインタを受け取る。この構造体はブートローダーによって受け渡され、ハードウェアに関する情報、レジストリファイルへのパス、カーネルの挙動を変更するブート設定またはオプションのカーネルパラメータ、ブートローダーによって読み込まれるファイルパスの情報を含んでいる。この構造体の定義はカーネルデバッガを使用するか、またはマイクロソフトのシンボルデータベースからダウンロードすることで取得することができる。

x86アーキテクチャでは、カーネルはシステムが既にプロテクトモードにあり、GDT ()、IDT ()およびTSS ()の準備が済んでいることを受け取る。カーネルはドライバ署名、メモリマネージャー、IDTといった各種リソース・コンポーネントの初期化処理を行い、最後に (SMSS)が問題なく起動したことを確認して初期化処理を終える。

セキュリティ対策 
Windows Server 2003 SP1以降の64ビット版Windowsには Kernel Patch Protection (PatchGuard) という数分おきにカーネルなどのシステム構造への改変をチェックする機構が備わっている。改変が検出された時、Windowsはブルースクリーンに移行してシステムを停止する。しかし、マルウェアの中にはカーネルの起動前に読み込まれるプログラム（ブートセクタなど）に感染することで、この保護機構を回避してカーネルを改ざんするブートキット () と呼ばれる種類が存在する。このような脆弱性に対してはUEFI SecureBootやTPMを利用して（信頼性の根幹）を確立することが有効である。

脚注

参考文献

外部リンク
 Driver Development Part 1: Introduction to Drivers  - Code Project by Toby Opferman
 Troubleshooting the Startup Process - Microsoft Technet

Windows NT系
Windowsのコンポーネント
ブート