RPL順序コールゲート2と、オペレーティングシステム57のステップ製剤によってステップ、

テキストを接続します。

それは我々が唯一の特権階級の機能については、ここで議論し、彼らは自分のアプリケーション環境を持っているので、4つのドアを提供していますが、それらは、コード・セグメントの低い特権レベルからハイステアリング特権コードセグメントを達成するために使用されています。

  1. 1.ドアを呼び出し

JMP命令、関数でサブゲート選択パラメータの呼び出し、およびコールの後に高い特権特権に低いからの遷移を実現するルーチンを呼び出し、システムコールを実装するために使用することができます。コール命令は、JMP命令のドアのみコードの同じレベルに呼転送を使用して達成することができ、より高い特権コードにコールゲートシフトを用いて達成することができます。

  1. 2.割り込みゲート

ローからハイ特権権限を達成迷惑移行の形を中断するINT命令、Linuxのシステムコールは、我々は後に割り込みが精巧な拡大が実現する場合、この実現にゲートを中断します。

  1. 3.トラップドア

、コンパイラをデバッグする際に一般的に使用され、高い特権特権、低から転送を実現するためのフォームを中断するために、この本の中で、我々はあまりにも多くの関心を持っていないINT3迷惑命令。

  1. 4.タスクゲート

タスクの切り替えを実装するために使用されるタスク状態セグメントTSSユニットのタスクは、その命令によって開始または中断することができます。対応する割込みベクタ番号がドアのタスクがある場合に割り込みが発生すると、それはタスクスイッチを開始します。また、タスクがコールまたはJMP命令の後にサブドアを選択するか、TSSのサブタスクを選択し、そのようにドアを呼び出すことができます。

率直に言って、最新のオペレーティングシステムはほとんど使用されませんタスクは、割り込みゲート、およびデバッガのトラップドアを使用して、当社のシステムでは、ゲート・ドアを呼び出して、私たちは一方の仕事に、デバッグアプリケーションのサポートに意図しませんでした大規模な量が、私たちの本来の意図に他方の逆に、少数のオペレーティングシステムが動作して、コードを理解することです。

私はあなたはそれが高い特権レベルにドアの構造を使用することができ、なぜみんなが今まで疑問に思っているかわかりませんか?これは間違いなく書かれたルールでは、CPUのハードウェア回路で、特に私は、テーブルの高さの上に立ってのように、バルブリフト特権レベルで、例えば、把握する必要がありますが、私はそれをこのように理解していないかわかりませんトランポリンでジャンプと同じように、人々はテーブルよりも高いトランポリンを演奏されます。キーポイント:テーブルの高さは、トランポリンとターゲットの高さの間に位置し、人々が高い演奏することができるように、トランポリンと少なくとも同じ高さでした。図中の効果。

実際には、ドアが達成するためにトランポリンの原理に従って、我々は、ドアフレームと敷居メタファーに「ゲート」を入れています:

ドア「しきい値」は下限への特権の訪問者、DPLがドアを記述することはできません、あるいはドアが来場者にはアクセスできません、ましてやコールゲートを使用するよりも、特権レベルの後、訪問者の特権レベルの低シンボルです。すなわち、現在の特権レベルにDPLゲートディスクリプタ特権レベルがよりすなわち値CPL <= DPLドア、ここで見られるように、同じデータに対応するゲートディスクリプタディスクリプタのみより高い特権レベル、CPL以下であるそれらのまたはアクセスするには、同じ権限レベル。

扉「ドア」は、訪問者の特権レベルがゲートディスクリプタの比率が高いターゲット・コード・セグメントのDPLプログラムで高い文字にすることはできません、特権上限の訪問者であるそうでない場合は、特権レベルがコードワードの目標特権レベルより高いそのものでありますまた、なぜ、ドアの使用、およびされる場合がありますので、これは絶対に禁止されている高への下位の特権レベルからのシフトを意味します。すなわち、すなわち、値CPL> =宛先コードセグメントDPL、ドア、プロセッサは、DPLのコードセグメントを標的とする、特権レベルのターゲットプログラムセグメントDPLゲートが含まれるか、またはCPLに等しい現在の特権レベルよりも高い位置にあり、現在の特権レベルのCPLは、したがって、ドアの後、あなたは友人の「月を求める」ことができます。

おすすめ

転載: blog.csdn.net/sinolover/article/details/95201089