令和6年度 秋期 午前Ⅱ 問1
プロセッサ
カーネルに関する問題
各ソフトウェアモジュールからアクセスできるハードウェアリソースやメモリ領域の範囲を適切に制限するために,4段階の特権レベル(EL0~3)をもつCPUがある。ELの次の数字が大きいほど高い特権レベルであるとき,各特権レベルにソフトウェアモジュールを適切に割り当てているものはどれか。
選択肢は原典ではEL0~EL3の各特権レベルに割り当てるソフトウェアモジュールの表。
- アEL0:ファームウェア/セキュアモニタ / EL1:ユーザーアプリケーション / EL2:ハイパーバイザー / EL3:OS(Linux kernelなど)
- イEL0:ユーザーアプリケーション / EL1:OS(Linux kernelなど) / EL2:ハイパーバイザー / EL3:ファームウェア/セキュアモニタ
- ウEL0:ユーザーアプリケーション / EL1:ハイパーバイザー / EL2:OS(Linux kernelなど) / EL3:ファームウェア/セキュアモニタ
- エEL0:ユーザーアプリケーション / EL1:ハイパーバイザー / EL2:ファームウェア/セキュアモニタ / EL3:OS(Linux kernelなど)
答えと解説を見る
✓ これが正解イEL0:ユーザーアプリケーション / EL1:OS(Linux kernelなど) / EL2:ハイパーバイザー / EL3:ファームウェア/セキュアモニタ
解説
特権の低い順にアプリ、OS、ハイパーバイザー、ファームウェアです。
特権レベルを分けるのは、より信頼でき、より広い範囲を管理するソフトウェアほど高い特権で動かし、下の階層から勝手に触れられないようにするためです。最も特権の低い EL0 では、利用者が使うユーザーアプリケーションを動かします。その上の EL1 では、アプリケーションを管理する OS のカーネルを動かします。EL2 には、複数の OS を仮想マシンとして動かし、それらを管理するハイパーバイザーを置きます。最も高い EL3 には、起動の基盤となり、安全な領域との切替えを受け持つファームウェアやセキュアモニタを置きます。管理する側ほど上、という関係を下から順にたどり、アプリ、OS、ハイパーバイザー、ファームウェアと積み上げて覚えると迷いません。
ほかの選択肢はなぜ違うのか
- アEL0:ファームウェア/セキュアモニタ …:最も特権の低い EL0 にファームウェアやセキュアモニタを置き、最も高い EL3 に OS を置いています。アプリケーションが OS より上の特権で動くなど、管理する側とされる側の上下がほぼ逆になっています。
- ウEL0:ユーザーアプリケーション / E…:EL1 にハイパーバイザー、EL2 に OS を置いており、二つの上下が入れ替わっています。ハイパーバイザーは複数の OS を管理する側なので、OS より高い特権で動かす必要があります。
- エEL0:ユーザーアプリケーション / E…:EL3 に OS を置き、ファームウェアやセキュアモニタを EL2 にしています。OS がハイパーバイザーやファームウェアより上の特権をもつことになり、仮想化や安全な領域の管理が成り立たなくなります。
出典:令和6年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)