リングプロテクション
[Wikipedia|▼Menu]
リングプロテクションの概念図

リングプロテクション(Ring Protection または Protection Ring)は、複数の特権レベルの階層構造を持ったコンピュータアーキテクチャの一種。単にリングとも言う。また、階層保護ドメイン (hierarchical protection domains) とも呼ぶ[1][2]。データや機能を障害から保護し(フォールトトレラント性)、悪意ある行為から保護する(コンピュータセキュリティ)。capability-based security とは対極の考え方に基づく。
目次

1 概要

2 実装

3 スーパーバイザモード

4 ハイパーバイザモード

5 CPUとOSの抽象化レベルの間の相互運用

6 脚注

7 参考文献

8 関連項目

概要

コンピュータのオペレーティングシステムは個々のリソースに対して様々なアクセスのレベル(アクセス権)を提供する。

リングとは図に示すように、円形の階層構造を示しており、各階層がアクセス権を示している。

リングプロテクションは、コンピュータ・アーキテクチャ内の権限(英語版)の2つ以上の階層的「レベル」または「層」で構成される。これは一般に一部CPUアーキテクチャによってハードウェアで実施され、複数のCPUモードをハードウェアレベルかマイクロコードレベルで提供する。リングプロテクションは最も高い特権レベル(最も信頼され、番号0を与えられる)から最も低い特権レベル(最も信頼できず、大きな番号を与えられる)までの階層構造で形成される。多くのOSでは、リング0が最も特権が高く、最も直接ハードウェア(CPUやメモリ)とやりとりできる。

リング間には特別なゲート(門)があり、外側のリングから内側のリングのリソースに予め決められた方法でアクセスすることを可能にしており、任意の使用を許すことはない。ゲートによるリング間の正しいアクセスにより、あるリングのプログラムが別のリングのプログラム用のリソースを悪用することを防ぎ、セキュリティを強化することができる。例えば、ハードウェアアクセスはリング1のデバイスドライバで行う必要があり、ユーザプログラムとしてリング3で動作しているスパイウェアがユーザーに知られずにウェブカメラをONにすることはできない。より大きな番号のリングで動作するウェブブラウザなどのプログラムは、より小さい番号のリングからしかアクセスできないリソースであるネットワークへのアクセスを所定の方法で要求しなければならない。
実装

ハードウェアのサポートするリングプロテクションはMulticsオペレーティングシステム(UNIX系OSの先祖)の導入した様々な革新的コンセプトの中でも最も先進的であった。しかし、今日最も一般的なOSは2レベルのリングしか使っておらず、ハードウェアの提供するCPUモードの一部しか使用していないことが多い。例えば Windows XP およびそれ以降のOSは2つのリングしか使っていない。カーネルモードに対応するリング0とユーザーモードに対応するリング3である[3]

多くの最近のCPUアーキテクチャ(インテルx86アーキテクチャなど)は何らかのリングプロテクション機構を持っている。しかし、Windows NT 系OSもUnix系OSもそれを完全には利用していない。OS/2では3つのリングを使っていた[4]。リング0はカーネルとデバイスドライバ、リング2は特権コード(I/Oアクセス特権を持ったユーザープログラム)、リング3は特権のないコード(ほぼ全てのユーザープログラム)となっていた。DOSでは、カーネルもドライバもアプリケーションもリング3で動作することが多く、EMM386などの386のメモリマネージャがリング0で動作していた。さらに、DR-DOSの EMM386 3.xx はオプションで一部モジュール(DPMSなど)をリング1で動作させることもできた。OpenVMSは4つのモードを使っており、特権の高い方から順に、カーネル、エグゼクティブ、スーパーバイザ、ユーザーと呼んでいる。

最近でもリングプロテクションに関して新たな動きがあった。XenVMMソフトウェア、モノリシックカーネルマイクロカーネルに関する議論、マイクロソフトのNGSCBイニシアティブによる「Ring-1」設計構造、Intel VT-x などのファームウェア組み込みのハイパーバイザなどである。

Multicsでは8レベルのリングを持っていたが、最近のシステムではもっと少ない。ハードウェアは現在走行中のスレッドが実行している命令列のリングレベルを特別なレジスタで監視している。システムによっては、仮想空間の一部領域とリング番号割り当てがハードウェアで連動している。例えば、データゼネラルEclipse MV/8000 では、プログラムカウンタ (PC) の最上位3ビットがリングレジスタを兼ねている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:39 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef