プロセスの親仮想メモリアドレス(カーネルマップ)は何に使用されますか? [コピー]

プロセスの親仮想メモリアドレス(カーネルマップ)は何に使用されますか? [コピー]

Linuxプロセスの親仮想アドレスのカーネルマッピングについていくつかの質問があります。

  1. RAMに保存されているカーネルテキストセグメントにマッピングされていますか(vmlinuzRAMにインポートすると読みました)?

  2. それは何のために使用されますか?

  3. プロセス表現は、pmapexeのセグメント、共有メモリ、スタック、ヒープにマップされます。マップされた親アドレスコアを引き続き表示できますか?

ベストアンサー1

カーネルバイナリマッピングを含むさまざまな用途に使用されます。 x86-64マッピングはカーネルに記録された、0xffffffff80000000(に対応)にカーネルテキストマップを表示しますvmlinuz。他の用途には、カーネルによるメモリ割り当てと物理メモリの完全なマッピングがあります。

レガシーvsyscallマッピングを除いて、カーネルに割り当てられたアドレス空間はプロセスマッピングには表示されません。実際、KPTIの場合、ユーザーモードでは、ほとんどのカーネルはメモリにまったくマッピングされません。

また、見ることができますアドレス空間のカーネル空間はどのように私たちのために予約されていますか?そしてそこにリンクされた他の質問もあります。

おすすめ記事