リングとランレベル

リングとランレベル

下記の質問は技術的に間違った部分(誤解)がある場合がありますので、誤解も解消していただければ幸いです。

どのリングレベルによって *nix が異なります。ランレベル運営中ですか?

リングラベルは使用できません。

答え1

Unixランレベルはガードリングと直交します(「非関連」、「独立」という意味 - 注を参照)。

ランレベルは基本的にオペレーティングシステム全体のランタイム構成/状態であり、SSHアクセス、MTA、ファイルサーバー、GUIなどの利用可能なサービス(「ユーザーに」)を記述します。

リングハードウェアサポート概念を使用すると、ハードウェアをより細かく制御できます(リンクされたWikipediaページに記載されています)。たとえば、親リングで実行されるコードは、特定のCPU命令を実行できない可能性があります。

x86アーキテクチャのLinuxは通常、カーネル(デバイスドライバを含む)にRing0を使用し、ユーザースペースアプリケーション(ルートまたは他の一般ユーザーまたは特権ユーザーによって実行されているかどうか)にRing3を使用します。

したがって、ランレベルが特定のリングで実行されていると実際に言うことはできません。常にリング3とカーネル(Ring0)で実行される1つのユーザースペースアプリケーション(最小PID 1 - )があります。init


1いつものように、「常に」は実際には「ほぼ常に」を意味します。なぜならRing0で「一般」プログラムを実行することができますが、実際の生活ではこれを見る可能性がほとんどないからです(HPCで作業しない限り)。

答え2

これら2つの概念はまったく関係がありません。システム実行レベルは、GUIデスクトップ環境が実行されているかどうかなど、システムで実行されるサービスのセットを表します。リングレベルは、コードをさまざまな特権レベルに分割するIntel x86プロセッサのハードウェア保護メカニズムです。 Linuxは、カーネルとユーザーモードのコードにそれぞれリング0とリング3のみを使用します。したがって、システムが実行レベルにあるときに実行されるすべてのユーザーモードプロセスは、カーネルコードを呼び出すまでリング3で実行され、CPUをリング0に切り替えます。

答え3

自分のリンクから:

モノリシックカーネルでは、オペレーティングシステムはスーパーバイザモードで実行され、アプリケーションはユーザーモードで実行されます。 Exoカーネルやマイクロカーネルを搭載したオペレーティングシステムなど、他の種類のオペレーティングシステムは必ずしもこのように動作するわけではありません。

PCの世界のいくつかの例:

LinuxとWindowsは、管理者/ユーザーモードを使用する2つのオペレーティングシステムです。特殊機能を実行するには、ユーザーモードコードはハイパーバイザーモードまたはカーネルスペースでシステムコールを実行する必要があります。ここで、オペレーティングシステムの信頼できるコードは必要な操作を実行し、それをユーザースペースに返します。

だからあなたの答えは2です。監督者(0)とユーザー(1)。

関連情報