Dla każdego procesu jądro utrzymuje strukturę opisującą przestrzeń adresową procesu. W tej strukturze znajduje się m.in. lista struktur opisujących ciągłe obszary pamięci (wirtualnej). Każdy ciągły obszar może mieć różne metody wykonywania zadań związanych z wirtualną pamięcią (głównie obsługa błędu braku strony), to pozwala jądru na poprawną obsługę wirtualnych regionów, które są używane w różny sposób. Np. dla obszaru związanego z kodem procesu obsługa błędu braku strony polega na wczytaniu odpowiedniej strony z pliku, dla obszaru przydzielonego przez malloc() obsługa błędu polega na ściągnięciu strony z pliku wymiany (lub jego pamięci podręcznej) lub przydzieleniu nowej strony.
Zawsze istnieją co najmniej trzy obszary:
Pamięć bezpośrednio za 3GB odwzorowuje w sposób ciągły pamięć fizyczną. Jeżeli pamięci fizycznej jest więcej niż 896MB, to pozostała część jest dostępna jako ,,HIGHMEM'' (tylko na pamięć podręczną i pamięć procesów). Pozostałe 128MB jest wykorzystywane do przydzielania ciągłych obszarów wirtualnej pamięci dla jądra oraz odwzorowywania stron ze strefy ,,HIGHMEM''.