※ ChatGPTを利用し、要約された質問です(原文:HIGHMEMについて)
このQ&Aのポイント
IA-32のカーネルは、1Gの仮想空間を、物理アドレスの下位からストレートマップしてる故、1G(896M)を超える物理アドレスにアクセスできない。
しかし、物理メモリを超えるアクセスが必要な場合、HIMEM空間を通して物理アドレスにアクセスすることが必要です。
ただし、ユーザプロセスではページテーブルを設定すれば、1Gを超える物理メモリを割り当てることができます。
IA-32のカーネルは、1Gの仮想空間を、物理アドレスの下位からストレートマップしてる故、1G(896M)を超える物理アドレスにアクセスできない。従って、理屈はともかく、HIMEM空間を通して、物理アドレスをアクセスする必要がある。となんとなく理解しています。
そこでふと思ったのですが、上の理解が妥当だとすると、HIMEMはあくまでカーネル空間だけの話で、プロセス空間は3G、しかも連続してマップする必要のないユーザプロセスでは、ページテーブルを設定すれば言いだけの話で、従って1Gを超える物理メモリを搭載した環境で、あえてHIMEM領域を設定しなくても、カーネルはちゃんとユーザプロセスに1Gを超える物理メモリを割り当てることができる。と思いに至った次第です。この認識、正しいでしょうか?
お礼
回答ありがとうございました。これでなんかすっきりいたしました。早々に教えていただいた記事を読んでさらに理解を深めたいと思います。