Citando la fonte del kernel:"I puntatori del kernel hanno informazioni ridondanti, quindi possiamo utilizzare uno schema in cui possiamo restituire un codice di errore o un [...] puntatore con lo stesso valore restituito. ”
I valori -1..-4095 (mappatura a 0xfffff000–0xffffffff in modalità a 32 bit) sono riservati per i valori errno a livello di kernel. Gli altri 4KB da 0xffffe000–0xffffeffff sono tenuti liberi per la vsyscall vdso magic page, ma poiché la pagina vdso è rilocabile da molte lune, quest'area rimane potenzialmente disabitata, vale a dire la [stack]
voce in /proc/*/maps
termina sempre a 0xffffdfff indipendentemente dal fatto che [vdso] sia mappato a 0xffffe000 o altrove.
Parte della memoria del kernel può trovarsi all'interno dello spazio degli indirizzi dello spazio utente dell'applicazione ed essere in qualche modo mappata con PROT_NONE
. Verrebbe quindi utilizzato uno spazio di indirizzi, ma senza essere accessibile dal programma (quindi non è possibile danneggiarli).