Windows では、PTE 自体のアドレスを構築することにより、特定の仮想アドレスの PTE 構造にアクセスできます。これは、すべての PTES が特定のアドレスから始まる仮想アドレス空間にマップされるためです。
これは Mac OS X にも当てはまりますか? つまり、特定の仮想アドレスの PTE にアクセスできますか?
もちろん、「pmap」レイヤーを介して、カーネルモードでのみ可能です。CR3 の異なる値は異なるページ テーブルを意味するため、CR3 の関連する値 (つまり、プロセス (またはカーネル) コンテキスト) が必要になります。ただし、これらは公開されている KPI (カーネル パブリック/プログラミング インターフェイス) ではないため、カーネル バージョンごとに非常に固有の kext を作成する必要があることに注意してください。xnu は start.S の 2 行目あたりから仮想であるため、このすべてで PTE が必要な理由は完全には明らかではありませんが、それでも可能です。