1. 概要

このチュートリアルでは、オペレーティングシステムの保護リングとは何か、なぜそれらが必要なのかを説明します。 また、さまざまなレベルの保護リングと、さまざまなプロセッサアーキテクチャでの実装の詳細についても説明します。

2. オペレーティングシステムのリングとは何ですか?

オペレーティングシステムには、いくつかの異なる層があります。 これらの各レイヤーには、独自の特権があります。 このシステムに言及する際に、保護リングという用語を使用します。 オペレーティングシステムは、CPUでの処理時間やメモリへのアクセスなど、コンピュータリソースを管理します。 コンピュータは複数のソフトウェアプロセスを実行するため、これにはいくつかの問題があります。 保護リングは、リソースとハードウェアを共有するための重要なソリューションの1つです。

したがって、プロセスはこれらの保護リングで実行され、各リングにはリソースへの独自のアクセス権があります。 中央のリングが最高の特権を持っています。 外側のものは内側のものよりも特権が少ない。下の図は、一般的なプロセッサアーキテクチャの1つであるx86プロセッサアーキテクチャの保護リングを表しています。

これまで見てきたように、0から3までの番号が付けられた4つのリングがあります。

a

3. なぜそれらが必要なのですか?

OSに保護リングを実装することにはいくつかの利点と利点があります。

何よりもまず、システムをクラッシュから保護します。たとえば、コンピューターで使用しているアプリケーションはフリーズまたはクラッシュする可能性がありますが、アプリケーションを再起動することで回復できます。 より高いリングでのこれらのようなエラーは回復可能です。

これらのプログラムはメモリやCPUに直接アクセスできないためです。 リング0のみ、kernelはハードウェアリソースに直接アクセスできます。 このようにして、データを失ったり、CPUでエラーを発生させたりすることなく、アプリケーションを再起動できます。

さらに、保護リングはセキュリティを強化します。たとえば、プロセスは、より多くのCPUリソースを必要とするいくつかの命令を必要とする場合があります。 このような場合、このプロセスはOSに許可を要求する必要があります。 OSは、要求を許可するか拒否するかを決定できます。 このプロセスは、システムを悪意のある動作から保護します。

4. 保護リングのレベル

4.1. リング0

オペレーティングシステムの中心であり、すべてにアクセスできるカーネルは、リング0にアクセスできます。ここで実行されるコードは、カーネルモードであると言われます。 カーネルモードのプロセスは、システム全体に影響を与える可能性があります。 ここで問題が発生した場合、システムがクラッシュする可能性があります。 このリングはCPUとシステムメモリの両方に直接アクセスできるためです。

4.2. リング3

ユーザーモードで実行されているユーザープロセスはリング3にアクセスできます。したがって、これは最小特権のリングです。 これは、私たちのコンピュータアプリケーションの大部分を見つける場所です。 このリングにはCPUまたはメモリへのアクセス権がないため、これらに関連するすべての命令をリング0に渡す必要があります。

4.3. リング1とリング2

一方、リング1とリング2には、リング3にはない独自の利点があります。 OSは、リング1を使用してコンピューターのハードウェアと対話します。 このリングは、モニター上のカメラを介してビデオをストリーミングするなどのコマンドを実行する必要があります。 システムのストレージ、ファイルのロード、または保存と対話する必要のある命令は、リング2に保存されます。

これらの権限は、作業メモリであるRAMとの間でデータを転送する必要があるため、入力および出力権限と呼ばれます。

たとえば、リング2では、ストレージからExcelファイルドキュメントをロードします。 このような場合、リング3がデータの編集と保存を担当します。

5. 保護リングを実装する方法は?

x86などのほとんどのCPUアーキテクチャには、何らかの形の保護リングが含まれています。 ただし、Linux、macOS、Windowsなどの一部のオペレーティングシステムは、これらの機能を十分に活用していません。 LinuxとWindowsはリング0とリング3のみを使用しますが、他の一部のオペレーティングシステムは3つの異なる保護レベルを利用できます。

一方、他の一般的なプロセッサアーキテクチャの1つであるARM 7は、アプリケーション、オペレーティングシステム、ハイパーバイザーの3つの特権レベルを実装しています。 ARM8は4つの保護レベルを実装しています。 ARM 7の既存のレベルに加えて、安全なモニターレベルを追加します。

すでに説明したように、リング0とリング3は必須レベルであり、リング1とリング2はオプションの保護レベルです。

6. 結論

このチュートリアルでは、保護リングとそのようなシステムの主な目的を定義しました。 次に、さまざまなレベルの保護リングとその責任についても説明しました。

最後に、さまざまなプロセッサアーキテクチャとオペレーティングシステムでの保護リングの実装に関する詳細を共有しました。