x86 メモリ セグメンテーションについて読みましたが、何かが足りないと思います。リニア (仮想) アドレスは、GDT エントリ (ベース アドレス) から 32 ビットを取得し、オフセット アドレスから 32 ビットを取得して構築されます。それらを合計して 32 ビットの仮想アドレスを取得します。
今私が見ているように、32 オフセット ビットはすべての VA 空間にまたがることができるので、32 ビット ベース アドレスを使用する必要は実際にはありません。したがって、ベースアドレスは変換プロセスで実際には役割を果たさなかったと結論付けます.リング0特権でセグメントのVAを取得できるため、セグメンテーションを使用したメモリ保護(x86保護モード)は役に立たないという結論に達しましたオフセットアドレス自体と。(例: jump 0x08000001 - セグメントにリング 3 特権がある場合、カーネル VA へ)
では、すべてのメモリ保護はページングに基づいているのでしょうか?