メモリ保護
保護キー機構では、メモリはある一定のサイズのかたまりに分割される(例えば、4Kバイト)。そして、それぞれに保護キー (protection key) と呼ばれる数値が対応付けられる。また、プロセスもひとつの保護キーを割り当てられている。メモリにアクセスする際、ハードウェアは現在のプロセスの保護キーとアクセスしようとしているメモリの保護キーが合っているかをチェックする。もし合っていない場合、例外が発生する。この機構はSystem/360アーキテクチャで使用されている。これは最近のメインフレーム System z でも利用可能で、そのOSやサブシステムがよく使用している。
今日のメインフレームは本質的に、PCやミッドレンジのサーバ(Windows、Linux、UNIXなど)に見られる欠陥である特権エスカレーション(英語版)に耐性がある。これはメインフレームにおけるメモリ保護機構が、ハードウェアで実装された複数のCPU保護リングや暗号機構で支えられた保護キーなどを使っているためである。そういった機構により、ユーザープロセスが直接ハードウェアにアクセスすることが防がれ、カーネルレベルのサービスもほとんど不要となっている。例えばアプリケーションの脆弱性を利用してシェルコードを実行させようとしても、より高い特権レベルのプロセス(ドライバやカーネル)に影響を及ぼすことはできないし、保護キーの異なる他のプロセスにも影響を及ぼせない。CPU保護リングはPCやミッドレンジサーバのOSでは限定的にしか使われておらず(例えば、x86ではカーネルがリング0、ユーザーがリング3だけを使用することが多い)、結果としてオールオアナッシング的な設計になっている。
ケイパビリティベースドアドレッシング(英語版)は現代の商用コンピュータでは使われていないメモリ保護技法である。この技法では、ポインタの代わりに「ケイパビリティ」と呼ばれる保護されたオブジェクトを使用する。ケイパビリティは特権命令を使わないと生成できず、カーネルや何らかの信頼されたプロセスが担当する。それによってカーネルはプロセス群がメモリ上のどのオブジェクトにアクセスできるかを効率的に制御でき、プロセス毎にアドレス空間を分離したりコンテキストスイッチしたりする必要がなくなる。この技法は商用ハードウェアでは主流になっていないが、研究用システムとしてはKeyKOS(英語版)があり、概念としてはSmalltalkやJavaなどの仮想機械の基盤となっている。