Podział wirtualnego adresu 3/1 na Linuxa

Brakuje mi czegoś, jeśli chodzi o zrozumienie, że highmem potrzebuje więcej niż 1 GB pamięci RAM. Czy ktoś mógłby wskazać, gdzie się mylę? Dzięki!

Co wiem:

1 GB pamięci wirtualnej procesów (duży obszar pamięci) jest zarezerwowany dla operacji jądra. Przestrzeń użytkownika może wykorzystać pozostałe 3 GB. To jest podział 3/1.

Funkcje pamięci wirtualnej maszyny wirtualnej odwzorowują (ciągłe) strony pamięci wirtualnej na strony fizyczne (RAM).

Czego nie wiem:

Jakie operacje używają pamięci wirtualnej jądra? Przypuszczam, że takie rzeczy jak kmalloc (...) w przestrzeni jądra użyją pamięci wirtualnej jądra.

Myślę, że w ramach tego schematu można by użyć 4 GB pamięci RAM. Nie rozumiem, dlaczego przestrzeń wirtualna jądra 1 GB jest czynnikiem ograniczającym przy adresowaniu przestrzeni fizycznej. To jest miejsce, w którym załamuje się moje zrozumienie. Proszę doradź.

Czytałem to (http://kerneltrap.org/node/2450), który jest świetny. Ale to nie do końca odpowiada mojemu pytaniu.

questionAnswers(3)

yourAnswerToTheQuestion