【ゆーざーもーど】

ユーザーモード とは?

最終更新:
💡 アプリを動かす、特権操作に制限があるモード

アプリケーションなどが、特権的な操作を制限された状態で動くCPUの実行モード。OSのメモリ保護と組み合わせ、アプリからカーネルの領域などを守るために使われる。

📌 このページのポイント
ユーザーモード:特権操作を制限 ユーザーモードのアプリ アプリA メモリA アプリB メモリB 私用領域を保護 許可された共有も可能 無許可の操作 カーネル領域 特権操作を制限 依頼 API・システムコール ファイル操作・通信などを依頼 必要な権限を確認 カーネルモードで処理 結果を受け、アプリの処理へ戻る すべての動作の無害さを保証はしない
メモリ保護とOSへの依頼を示す概念図。許可された共有や機器アクセスもあるため、ユーザーモードであればあらゆる操作が安全、という意味ではありません。
ひよこ ひよこ
ユーザーモードって何なの?
ペンギン先生 ペンギン先生
普通のアプリケーションなどが動くときのCPUの実行モードだよ。OSの中核が使うカーネルモードより、特権的な操作が制限されている。作業できる場所と、OSに依頼する必要がある操作を分けるイメージだね。
ひよこ ひよこ
制限って具体的に何ができないの?
ペンギン先生 ペンギン先生
カーネル用のメモリなど、許可されていない場所へ勝手にアクセスできない。OSはプロセスごとの仮想アドレス空間を使って、ほかのアプリのデータも保護する。一方、OSが許可した共有メモリなら、複数のプロセスで同じデータを使うこともできるよ。
ひよこ ひよこ
じゃあファイルを保存したいときとかはどうするの?
ペンギン先生 ペンギン先生
OSのAPIや、システムコールを通じてカーネルに依頼する。必要な処理ではCPUがカーネルモードへ切り替わり、権限の確認やファイル・機器の処理を行うんだ。アプリ全体がカーネルモードになるわけではなく、通常は結果を受け取ってユーザーモードの処理を続けるよ。
ひよこ ひよこ
アプリがバグで暴走してもシステムは大丈夫なの?
ペンギン先生 ペンギン先生
メモリ保護は、アプリの誤った書き込みがほかの領域へ広がるのを抑える。異常なプロセスを終了することもできるよ。ただし、そのアプリに許可されたファイルの変更などまで無害になるわけではないので、ユーザーモードだけであらゆる問題を防げるとは言えないんだ。
ひよこ ひよこ
ユーザーモードで動くのは普通のアプリだけ?
ペンギン先生 ペンギン先生
多くのアプリの処理に加え、ユーザーモードで動くデバイスドライバーもあるよ。逆に、ファイル操作などでカーネルへ依頼する部分もある。機器への直接アクセスの許可はOSや構成によって異なるので、ユーザーモードという名前だけで全部の実行場所や権限が決まるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ユーザーモード」って出てきたら「アプリが特権操作を制限されて動くモード」と思えばだいたいOK!
📖 おまけ:英語の意味
「User Mode」 = ユーザー動作モード
💬 ユーザー(利用者)のプログラムが動くときの mode(モード)で、安全のために権限が制限されている状態だよ

参考資料

← 用語集にもどる