En la arquitectura x86-64, ¿cómo puede especificar el sistema operativo qué páginas no pueden contener código ejecutable?
El bit de no ejecución o bit NX (bit 63 de la entrada de la tabla de páginas) permite al sistema operativo especificar qué páginas del espacio de direcciones virtual pueden contener código ejecutable y cuáles no. Un intento de ejecutar código desde una página etiquetada como "no ejecutable" dará lugar a una violación de acceso a memoria, similar a un intento de escribir en una página de sólo lectura. Esto debería dificultar que el código malicioso tome el control del sistema mediante ataques de "desbordamiento de búfer" o "búfer no comprobado". Desde el 80286, los procesadores x86 disponen de una función similar como atributo de los descriptores de segmento; sin embargo, sólo funciona en un segmento entero cada vez.
El sistema operativo puede etiquetar una página del espacio de direcciones virtual con el bit de No Ejecutar o NX, que es el bit 63 de la entrada de la tabla de páginas.