リングプロテクション
OpenVMSは4つのモードを使っており、特権の高い方から順に、カーネル、エグゼクティブ、スーパーバイザ、ユーザーと呼んでいる。
最近でもリングプロテクションに関して新たな動きがあった。XenのVMMソフトウェア、モノリシックカーネルとマイクロカーネルに関する議論、マイクロソフトのNGSCBイニシアティブによる「Ring-1」設計構造、Intel VT-x などのファームウェア組み込みのハイパーバイザなどである。
Multicsでは8レベルのリングを持っていたが、最近のシステムではもっと少ない。ハードウェアは現在走行中のスレッドが実行している命令列のリングレベルを特別なレジスタで監視している。システムによっては、仮想空間の一部領域とリング番号割り当てがハードウェアで連動している。例えば、データゼネラルの Eclipse MV/8000 では、プログラムカウンタ (PC) の最上位3ビットがリングレジスタを兼ねている。そのため、例えば仮想アドレス 0xE200000 をPCにセットしてコードを実行すると、自動的にリング7となり、仮想空間上の別のセクションにあるサブルーチンを呼び出すことは、リングからリングへの移行を自動的に伴うことになる。
ハードウェアは、あるリングから別のリングへの制御の移動を厳密に制限している。
スーパーバイザモード (supervisor mode) という用語は、システムレベルのソフトウェアで動作するコードが変更できるハードウェアで実装されたフラグを意味する。システムレベルのタスクやスレッドが動作中はこのフラグがセットされており、ユーザ空間のアプリケーションが動作中はセットされていない。このフラグは、制御用のレジスタを書き換えたり、割り込みをマスクしたりといった特権命令を実行できるかどうかを決定する。2つの異なるモードを持たせるという考え方は「より多くの制御を得ると、より多くの責任も生じる」という考え方から来ている。特権命令を間違って使用するとシステム全体のクラッシュにつながる可能性があるので、スーパーバイザモードのプログラムは決して間違わないものとして信頼されている。
スーパーバイザモードは、「特権命令を含む全命令の実行を可能にする一部プロセッサが持つ実行モード。また、異なるアドレス空間へのアクセスを可能とされたり、メモリ管理ユニットや他の周辺機器へのアクセスも可能とされることもある。通常、オペレーティングシステムはこのモードで動作する。」と定義されている。
モノリシックカーネルのOSは、カーネルがスーパーバイザモードで動作し、アプリケーションがユーザーモードで動作する。マイクロカーネルなどでは、必ずしもこのような住み分けではない。
LinuxとWindowsはスーパーバイザモードとユーザーモードを使用している。