Przestrzeń użytkownika
Miejsce, w którym działają zwykłe programy — bez bezpośredniego dostępu do sprzętu i każdy z własną chronioną przestrzenią adresową.
Program w przestrzeni użytkownika nie może sam sięgnąć do dysku, otworzyć połączenia sieciowego ani odczytać pamięci innego procesu. Wszystko to musi przejść przez wywołania systemowe, w których jądro sprawdza uprawnienia, zanim wykona usługę. Jeśli program się zawiesi, nikt inny na tym nie ucierpi.
Gdzie poprowadzić granicę, to kompromis, o który wciąż się spiera. Przeniesienie funkcji na zewnątrz daje odporność i łatwiejsze debugowanie — FUSE pozwala pisać systemy plików jako zwykłe programy, a stosy sieciowe w przestrzeni użytkownika, jak DPDK, całkowicie omijają jądro dla ekstremalnej wydajności. Przeniesienie do środka daje szybkość. eBPF to trzecia odpowiedź: kod, który jest weryfikowany, a potem uruchamiany w jądrze bez konieczności darzenia go zaufaniem.