remap_pfn_range
関数 (mmap
ドライバーの呼び出しで使用) を使用して、カーネル メモリをユーザー空間にマップできます。それはどのように行われますか?誰かが正確な手順を説明できますか? カーネル モードは特権モード (PM) ですが、ユーザー空間は非特権モード (NPM) です。PM では CPU はすべてのメモリにアクセスできますが、NPM では一部のメモリが制限されており、CPU からはアクセスできません。がremap_pfn_range
呼び出されると、PM のみに制限されていたメモリの範囲がユーザー空間にアクセスできるようになったのはなぜですか?
remap_pfn_range
コードを見るとpgprot_t struct
. これはプロテクション マッピング関連の構造体です。プロテクション マッピングとは 上記の質問に対する答えですか?