CPUモード(プロセッサモード、特権レベル)とは、コンピュータのCPUの動作モードであり、CPUが実行できる操作を制限するものである。モードの種類.カーネルモードでは、CPUはそのアーキテクチャの全ての操作が可能である(ハードウェア構成によっては不可能な操作もありうる)。任意の命令を実行でき、入出力操作を開始でき、全メモリ空間にアクセス可能である。他のCPUモードでは、ハードウェアによってCPUの動作に制限が加えられる。典型的には、一部の命令が実行できなくなり、入出力操作ができなくなり、メモリ空間の一部にアクセスできなくなる。通常、ユーザーモードでのCPUの機能はカーネルモードでの機能のサブセットであるが、場合によっては(例えば他のアーキテクチャのハードウェアをエミュレーションしている場合など)、カーネルモードのサブセットとは言えない全く異なった機能になっていることもある。CPUモードとソフトウェアの関係.多くのCPUハードウェアアーキテクチャは、通常実行しているオペレーティングシステムが利用する以上の柔軟性を有している。複雑なCPUモードの適切な利用はCPUとオペレーティングシステムの密接な協力が必要であり、OSとCPUアーキテクチャを拘束する傾向がある。OSとCPUが相互に相手を意識して設計された場合、問題はない(それでもハードウェア機能の一部は使われないことがある)が、OSが複数の他のCPUでも動作することを考慮して設計された場合、OSはCPUモード機能の大部分を利用しなくなる。例えば、WindowsNTは多くのアーキテクチャへの移植性を考慮して設計されたため、ユーザーモードとカーネルモードだけをサポートした。走行中スレッドのCPUモードの変更は高い特権レベルから低い特権レベルの場合は自由に行えるが、低い方から高い方への変更はハードウェアが制御するセキュアな「ゲート」を特殊な命令を使って通過することでなされる(または割り込みを受け付けることでも高い特権レベルへのモード変更がなされる)。これがシステムコールである。マイクロカーネル方式のオペレーティングシステムは特権モードで動作するコード量を最小化することを意図している。それによって性能が低下してもセキュリティは高まると言う人もいる。ユーザーモードユーザモード吉沢有希子カーネルモード