Multics オペレーティング システムにおけるゲートとはどういう意味ですか?

Multics オペレーティング システムにおけるゲートとはどういう意味ですか?

Multics オペレーティング システムを読みました。セグメント記述子ワード (ブック) には、セグメントのゲートの数を表す部分があります。ゲートとはどういう意味ですか? ゲートが許可する場合 (有効なセグメント ゲートの 1 つをエントリ ポイントとして使用)、プロセスはより高い権限のリングに入ることができることは知っていますが、ゲートの意味が正確にわかりません。

ありがとう。

答え1

ゲートは、単に特別に宣言されたエントリ ポイントです (エントリ ポイントは、今日の言語ではルーチン、関数、またはプロシージャと呼ばれます)。コンパイラまたはアセンブラは、ゲートであるエントリ ポイントの追加情報を生成します。ゲート エントリ ポイントは、ゲートのリングよりも権限の低いリングで実行されているコードによって呼び出すことができます。ゲート以外のエントリ ポイントは、番号の大きい (権限の低い) リングで実行されているコードからは呼び出すことができません。

詳細については、AL-39 マニュアルのセクション 8 と call6 命令の説明を参照してください。以下は抜粋です。

ゲートは、特定のリング内に常駐するプロシージャであり、リングへの制御されたアクセスを提供することを目的としています。リング R 内のプログラムは、この内部リング r に関連付けられたゲート プロシージャの 1 つを呼び出すことによってのみ、内部リング r に入ることができます。ゲートは慎重にコーディングする必要があり、権限の低いリング内で呼び出し元によって作成または変更されたデータを信頼してはなりません。特に、ゲートは、内部リング内にあるセグメントの保護を損なわないように、呼び出し元から渡されるすべての引数を検証する必要があります。

答え2

ちなみに、Multics で使用されていたものと非常によく似たリング遷移用のコール ゲート メカニズムは、80286 以降の「保護モード」をサポートするすべての Intel x86 システムでも使用できます。

関連情報