Proces działający w trybie użytkownika korzysta z prywatnego stosu, obszaru danych i kodu. Gdy proces działa w trybie jądra, wtedy używa obszaru danych i kodu jądra oraz innego stosu.
Chociaż każdemu procesowi wydaje się, że ma dostęp do prywatnej przestrzeni adresowej, czasem część tej przestrzeni może być współdzielona z innymi procesami, co może służyć komunikacji międzyprocesowej i oszczędzaniu pamięci.