"Alta memória" e "pouca memória" não se aplicam ao espaço de endereço virtual dos processos, mas sim à memória física.
No espaço de endereço virtual do processo, o espaço do usuário ocupa os primeiros 3 GB e o kernel ocupa o quarto GB deste espaço de endereço linear.
Os primeiros 896MB do espaço do kernel (não apenas o código do kernel, mas também seus dados) são mapeados "diretamente" para os primeiros 896 MB da memória física. É "direto" no sentido de que há sempre um deslocamento de 0xc0000000 entre qualquer endereço linear desta parte de 896MB do espaço virtual do kernel e seu endereço correspondente na memória física (note que a MMU está habilitada e que as entradas da tabela de páginas são realmente usado para isso).
A última parte de 128MB do espaço virtual do kernel é onde são mapeadas algumas partes da "memória alta" física (> 896MB): assim, ela só pode mapear mais de 128MB de "memória alta" de cada vez. / p>
Referência: "Entendendo o Kernel Linux", terceira edição - seções "8.1.3. Zonas de Memória" e "8.1.6. Kernel Mappings of High-Memory Page Frames".