CPU 特権リング: リング 1 と 2 が使用されないのはなぜですか? 質問する

CPU 特権リング: リング 1 と 2 が使用されないのはなぜですか? 質問する

x86 CPU 特権リングに関するいくつかの質問:

  • なぜほとんどのオペレーティング システムではリング 1 と 2 が使用されないのでしょうか。他のアーキテクチャとのコード互換性を維持するためだけでしょうか、それとももっと良い理由があるのでしょうか。

  • 実際にこれらのリングを使用するオペレーティング システムはありますか? それとも、まったく使用されていないのでしょうか?

ベストアンサー1

趣味でオペレーティング システムを作成している私は、ページング (最新の保護モデルの主要部分) には特権 (リング 0、1、2) と非特権の概念しかないため、リング 1 と 2 の利点が大幅に減少していることに気付きました。

Intel がリング 1 と 2 を用意した目的は、OS がデバイス ドライバーをそのレベルに配置し、特権を持ちながらもカーネル コードの残りの部分からある程度分離できるようにすることです。

リング 1 と 2 は、ある意味では「ほとんど」特権を持っています。これらはスーパーバイザ ページにアクセスできますが、特権命令を使用しようとすると、リング 3 と同様に GPF が発生します。したがって、Intel が計画したように、ドライバにとって悪い場所ではありません...

とはいえ、いくつかのデザインでは確かに使用されています。実際、OSによって直接使用されるとは限りません。たとえば、バーチャルボックス仮想マシンは、ゲスト カーネル コードをリング 1 に配置します。一部のオペレーティング システムではこれを使用していると確信していますが、現時点では一般的な設計ではないと思います。

おすすめ記事