【ゆーざーもーど】

ユーザーモード とは?

💡 アプリが安全に遊べる「砂場」モード
📌 このページのポイント
ユーザーモードの制限と保護 ユーザーモード(Ring 3) プロセスA メモリ空間A プロセスB メモリ空間B × 互いのメモリは見えない 禁止される操作 × ハードウェア直接アクセス × 特権命令の実行 × 他プロセスのメモリ参照 × I/Oポートの直接操作 違反するとCPUが例外を発生 システムコール: ファイル操作 / ネットワーク / プロセス生成 依頼 カーネルが代行 → ハードウェア操作・リソース管理
ユーザーモードのイメージ
ひよこ ひよこ

ユーザーモードって何なの?

ペンギン先生 ペンギン先生

普通のアプリケーションが動くときのCPUの動作モードだよ。公園の砂場みたいなもので、中で自由に遊べるけど、柵の外には出られないように制限がかかっているんだ。

ひよこ ひよこ

制限って具体的に何ができないの?

ペンギン先生 ペンギン先生

ハードウェアに直接アクセスしたり、他のプログラムのメモリを覗いたり、CPUの特権命令を実行したりできないよ。もし禁止されている操作をしようとすると、CPUが例外(フォールト)を発生させてOSに通知するんだ。

ひよこ ひよこ

じゃあファイルを保存したいときとかはどうするの?

ペンギン先生 ペンギン先生

そういうときはシステムコールという仕組みを使ってカーネルにお願いするんだ。「このファイルに書き込んで」とカーネルに依頼すると、CPUカーネルモードに切り替わって、カーネルが代わりにハードウェア操作をしてくれるよ。

ひよこ ひよこ

アプリがバグで暴走してもシステムは大丈夫なの?

ペンギン先生 ペンギン先生

そこがユーザーモードの大きなメリットだよ。メモリ保護があるから、暴走したアプリは自分のメモリ空間の中でしかダメージを与えられない。OSが異常を検知してそのプロセスだけを強制終了できるから、他のアプリやOS自体は無事なんだ。

ひよこ ひよこ

ユーザーモードだけで動くプログラムってどのくらいあるの?

ペンギン先生 ペンギン先生

ほとんどのプログラムはユーザーモードで動いているよ。ブラウザ、エディタ、ゲーム、全部そう。面白いのは、最近のマイクロカーネル設計ではデバイスドライバファイルシステムまでユーザーモードで動かす思想があるんだ。ドライバのバグでOSが落ちなくなるメリットがあるけど、モード切り替えのオーバーヘッドが増えるというトレードオフがあるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ユーザーモード」って出てきたら「アプリが制限付きで安全に動く通常モード」と思えればだいたいOK!
📖 おまけ:英語の意味
「User Mode」 = ユーザー動作モード
💬 ユーザー(利用者)のプログラムが動くときの mode(モード)で、安全のために権限が制限されている状態だよ
← 用語集にもどる