【ゆーざーもーど】

ユーザーモード とは?

公開:
💡 アプリが安全に遊べる「砂場」モード
📌 このページのポイント
ユーザーモードの制限と保護 ユーザーモード(Ring 3) プロセスA メモリ空間A プロセスB メモリ空間B × 互いのメモリは見えない 禁止される操作 × ハードウェア直接アクセス × 特権命令の実行 × 他プロセスのメモリ参照 × I/Oポートの直接操作 違反するとCPUが例外を発生 システムコール: ファイル操作 / ネットワーク / プロセス生成 依頼 カーネルが代行 → ハードウェア操作・リソース管理
ユーザーモードのイメージ
ひよこ ひよこ
ユーザーモードって何なの?
ペンギン先生 ペンギン先生
普通のアプリケーションが動くときのCPUの動作モードだよ。公園の砂場みたいなもので、中で自由に遊べるけど、柵の外には出られないように制限がかかっているんだ。
ひよこ ひよこ
制限って具体的に何ができないの?
ペンギン先生 ペンギン先生
ハードウェアに直接アクセスしたり、他のプログラムのメモリを覗いたり、CPUの特権命令を実行したりできないよ。もし禁止されている操作をしようとすると、CPUが例外(フォールト)を発生させてOSに通知するんだ。
ひよこ ひよこ
じゃあファイルを保存したいときとかはどうするの?
ペンギン先生 ペンギン先生
そういうときはシステムコールという仕組みを使ってカーネルにお願いするんだ。「このファイルに書き込んで」とカーネルに依頼すると、CPUカーネルモードに切り替わって、カーネルが代わりにハードウェア操作をしてくれるよ。
ひよこ ひよこ
アプリがバグで暴走してもシステムは大丈夫なの?
ペンギン先生 ペンギン先生
そこがユーザーモードの大きなメリットだよ。メモリ保護があるから、暴走したアプリは自分のメモリ空間の中でしかダメージを与えられない。OSが異常を検知してそのプロセスだけを強制終了できるから、他のアプリやOS自体は無事なんだ。
ひよこ ひよこ
ユーザーモードだけで動くプログラムってどのくらいあるの?
ペンギン先生 ペンギン先生
ほとんどのプログラムはユーザーモードで動いているよ。ブラウザ、エディタ、ゲーム、全部そう。面白いのは、最近のマイクロカーネル設計ではデバイスドライバファイルシステムまでユーザーモードで動かす思想があるんだ。ドライバのバグでOSが落ちなくなるメリットがあるけど、モード切り替えのオーバーヘッドが増えるというトレードオフがあるよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ユーザーモード」って出てきたら「アプリが制限付きで安全に動く通常モード」と思えればだいたいOK!
📖 おまけ:英語の意味
「User Mode」 = ユーザー動作モード
💬 ユーザー(利用者)のプログラムが動くときの mode(モード)で、安全のために権限が制限されている状態だよ
← 用語集にもどる