Przestrzeń jądra
Część pamięci i uprawnień dostępna tylko dla jądra — tam odbywa się cały dostęp do sprzętu.
Ten podział jest podstawą tego, że program nie może położyć całego systemu. Kod w przestrzeni jądra może wykonywać instrukcje uprzywilejowane, rozmawiać bezpośrednio z urządzeniami i czytać dowolny adres. Kod w przestrzeni użytkownika nie ma nic z tego i każdą taką usługę musi zamówić przez wywołanie systemowe.
Przekroczenie granicy kosztuje. Wywołanie systemowe oznacza zmianę poziomu uprawnień, a od czasu Meltdown i Spectre w 2018 roku także podmianę tablic stron, by kontrolować wyciek pamięci jądra przez wykonanie spekulatywne — mitygacja KPTI wyraźnie spowolniła niektóre obciążenia. To jeden z powodów powstania io_uring i eBPF, które zmniejszają liczbę przekroczeń granicy.