0xc0000000以降の約1GBのカーネル空間は物理ページに対してストレートにマップされる(図1)。カーネルのアドレス空間は1GBまでしかないため、物理メモリを1GB以上実装するとストレートにマップできないメモリができる。このストレートマップされない高位のメモリをHighMemoryと呼ぶ。正確には896MB以降がHighMemoryとなる。逆にストレートマップされているメモリLowMemoryと呼ばれる。 カーネルの使用する多くのデータは基本的にストレートマップされているLowMemに置かないといけないものが多いため(*1)(*2)、大規模なシステムだとカーネルデータが大きくなり、LowMemoryのサイズがネックになってくる。このため、プロセスのユーザ空間へのページの割り当てなどはHighMemoryから優先的に割り当てるようして、LowMemoryを圧迫しないようにしている。 (*