NX-bit

Versione del 22 lug 2005 alle 12:19 di Stiffmaister (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Template:Stub informatica NX sta per No eXecute, "non eseguire". Si tratta di una tecnologia usata generalmente nelle CPU per isolare aree di memoria al fine di immagazzinare istruzioni del microprocessore (ovvero codice) o dati. Le sezioni di memoria contrassegnate con l'NX bit sono dedicate al deposito di soli dati, e le istruzioni non dovrebbero risiedervi. Questa funzionalità rende la tecnologia una valida difesa dai programmi nocivi nascosti all'interno dei dati di un altro software, cioè dagli attacchi di buffer overflow.

Intel ha deciso di denominare la propria applicazione di questa tecnologia XD-bit da eXecute Disable, ma le due non differiscono affatto se non nel nome.

Supporto hardware

Nonostante questo meccanismo fosse presente da anni in altre architetture come lo SPARC della Sun Microsystems, l'Alpha, il PowerPC della IBM e anche nell'architettura IA-64 della Intel, il termine è stato coniato da AMD per i propri processori AMD64, come l'Athlon64 e l'Opteron, e sta prendendo piede per definire questa tecnologia anche in altri processori.

L'NX è l'ultimo bit, il numero 63 (i bit si contano negli interi a 64 bit a partire da 0) dell'indirizzo nella tabella di paginazione di un processore x86. Se il bit è uguale a 0, può essere eseguito codice proveniente da quella pagina di memoria; se è pari a 1, si presume che siano presenti solo dati, e l'eventuale codice ivi residente non sarà elaborato. Per il supporto di questa tecnologia il formato di paginazione della memoria deve essere il PAE, e non il formato originale x86. L'NX bit fu introdotto nei processori AMD64, perchè questa è una diretta espansione della x86, ma esso non richiede l'attivazione della modalità a 64 bit: perciò VIA, Transmeta e naturalmente Intel stanno includendo questa tecnologia nei propri processori x86.