Lo spazio di indirizzi virtuali dell'utente per x86-64 con Linux è lungo 47 bit. Il che significa essenzialmente che Linux può mappare un processo con circa 128 TB di intervallo di indirizzi virtuali.In che modo Linux supporta oltre 512 GB di intervallo di indirizzi virtuali in x86-64?
Tuttavia, ciò che mi confonde è che l'architettura x86-64 supporta la tabella di pagina gerarchica a 4 livelli definita ISA (organizzata come albero radix) per ogni processo. La radice della tabella di pagine può solo mappare fino a 512 GB di spazio di indirizzamento virtuale contiguo. Quindi, come Linux può supportare più di 512 GB di gamma di indirizzi virtuali? Utilizza più tabelle di pagina per ogni processo? Se sì, allora per un processo cosa dovrebbe contenere il CR3 (il registro x86-64 per contenere l'indirizzo della base della tabella della pagina) per ogni dato processo? Mi sto perdendo qualcosa?
Grazie per il chiarimento.Ho sbagliato un livello e quindi la confusione. Adesso è chiaro. – Arka