Linuxカーネルの回復マッピングはどのように実装されますか?

Linuxカーネルの回復マッピングはどのように実装されますか?

一部の構成では、各プロセスメモリの上位1Gがカーネルに属しています。 1G空間では、下位896M部分が物理アドレスに直接マッピングされ、これを固定マッピング領域と呼びます。

しかし、それがどのように実装されるのか混乱しています。 CPUは線形アドレスにのみアクセスでき、これはMMUによって物理アドレスとして解釈されます。カーネルがこの修理マッピング領域にアクセスするとどうなりますか? MMUをスキップしますか?

ベストアンサー1

カーネルはまた、リニアアドレスを使用してCPUで実行されます。 MMUをスキップしません。

永続マップへのアクセスは他のアクセスと同じです。その物理ページはページテーブルを使用してマッピングされます。永続マッピングを使用すると、起動中に設定されます。permanent_kmaps_init(32ビットx86)。

また、見ることができますMMUはUnix / Linuxカーネル内にありますか?それとも、独自のメモリを持つハードウェアデバイスにのみありますか?そして(理由)Linuxカーネルは仮想アドレス空間にIDマッピングを使用しますか?

おすすめ記事