異なるプロセスの仮想メモリアドレス空間間の分離は、特権プロセスとスワッピングには適用されませんか?

異なるプロセスの仮想メモリアドレス空間間の分離は、特権プロセスとスワッピングには適用されませんか?

Linuxプログラミングインターフェースから

データを含む仮想メモリページをスワップアウトし(mlock()または同様のメソッドを使用してメモリにロックされていない場合)、その後、特権プログラムをスワップ領域から読み取ることができます。

あるプロセスの仮想メモリアドレス空間は別のプロセスからアクセスできないことを学びました。上記の引用は私を気にする。

  • この隔離ステートメントは他の特権プロセスには適用されませんか?

  • これはスワップ部分には適用されず、実際のメモリ部分にのみ適用されますか?

ベストアンサー1

アドレス空間の分離は特権プロセスに対して機能しますが、場合によってはメモリに格納されているデータに特権プロセスによってロータリー方式でアクセスできます。

データが交換状態になると、十分な権限を持つすべてのプロセス(つまり基本ファイルまたはデバイスを読み取るのに十分な権限を持って実行している人は、誰でもスワップストアを直接読み取ってそこにあるデータにアクセスできます。メモリサブシステム以外の手段を介してデータにアクセスできるため、アドレス空間の分離はここで破棄されます。

以前のカーネルまたは構成されたカーネルから/dev/kmem十分な読み取り権限を持つプロセスは、メモリー内のすべてのプロセスからデータを読み取ることができます。これにより、アドレス空間の分離も破棄されます。今回は、仮想メモリ階層を介さずに物理メモリを読み込みます。

おすすめ記事