1. [Wiki](https://feex.it/wiki/)
2. [Hardware](https://feex.it/wiki/hardware/)
3. [Sistemas y arquitectura](https://feex.it/wiki/hardware/system/)
4. Execute Disable (NX)

# Execute Disable (NX)

Referencia de arquitectura: Feex

Execute Disable, también llamado NX o XD en la terminología de x86, permite a las tablas de páginas marcar la memoria como no ejecutable. Es un componente básico de hardware utilizado por las directivas de protección de ejecución del sistema operativo.

## Lo que necesita saber

Execute Disable, también llamado NX o XD en la terminología de x86, permite a las tablas de páginas marcar la memoria como no ejecutable. Es un componente básico de hardware utilizado por las directivas de protección de ejecución del sistema operativo.

## Cómo funciona

Cuando está habilitado en el entorno de paginación correspondiente, una recuperación de instrucciones desde una página marcada como no ejecutable genera un fallo en lugar de ejecutar sus bytes. Los permisos de página distinguen la ejecución del acceso a datos; el software es responsable de asignar los permisos adecuados y gestionar las transiciones para el código generado legítimo.

## Dónde resulta útil

Un sistema operativo puede asignar un búfer de datos sin permiso de ejecución, de modo que escribir bytes de código máquina en ese búfer no lo convierte en una página de código ejecutable. Los entornos de ejecución JIT utilizan API de gestión de memoria y directivas de permisos documentadas para el código generado.

## Cómo comprobar la compatibilidad y la habilitación

CPUID.80000001H:EDX bit 20 enumera la capacidad de execute-disable de x86 según la definición del proveedor correspondiente. La aplicación efectiva también depende del modo de paginación y de la habilitación por parte del SO. Inspeccione el estado de protección documentado del sistema operativo en lugar de deducirlo a partir de un modelo de CPU.

La capacidad, la habilitación y la aplicación obligatoria deben comprobarse por separado. Un procesador puede admitir una protección mientras que el sistema operativo, la aplicación o la directiva de la máquina virtual no la activan. El campo de compatibilidad de una base de datos no es una atestación de un sistema en ejecución.

## Lo que la función no establece

NX no determina que un archivo ejecutable sea seguro, no bloquea todos los ataques de reutilización de código ni demuestra la elegibilidad para Windows. Los datos siguen siendo legibles o modificables de acuerdo con permisos independientes. Un indicador de función no significa que cada asignación de memoria siga una directiva estricta de escritura/ejecución.

## Compatibilidad y rendimiento en la práctica

Mantenga actualizados el sistema operativo, el firmware y el entorno de ejecución afectado. Si una protección pone de manifiesto un problema de compatibilidad, utilice primero los diagnósticos del proveedor y las actualizaciones compatibles. Un interruptor de protección general puede afectar a aplicaciones no relacionadas y debe seguir una directiva explícita de despliegue y recuperación.

## Lista de comprobación práctica para la verificación

1. Registre el modelo exacto de procesador o plataforma, así como las versiones de la aplicación, el sistema operativo y el entorno de ejecución involucrados. Conserve la redacción del error o requisito real.
2. Consulte la referencia del fabricante para ese modelo exacto y, a continuación, inspeccione la capacidad efectiva y el estado habilitado en el entorno donde se ejecuta el programa.
3. Compare cada requisito del binario o backend seleccionado. Una función con nombre similar, un alias o una etiqueta de tecnología general no son suficientes.
4. Confirme que la aplicación haya seleccionado la implementación prevista. Utilice sus diagnósticos documentados y una alternativa compatible cuando no se cumplan los requisitos.
5. Realice un cambio admitido a la vez y repita la misma carga de trabajo. Mantenga disponibles la configuración original y la vía de recuperación.

## Si la función aparece listada pero el software no puede usarla

Comience con el componente exacto que falla. Una base de datos de hardware describe la capacidad registrada; el sistema operativo o el hipervisor pueden exponer un entorno efectivo diferente. Un error de instrucción no válida también requiere investigar la instrucción que generó el fallo y la compilación del binario en sí, ya que la corrupción o una instrucción no compatible no relacionada pueden producir un síntoma similar.

Instale la versión de la aplicación, controlador o entorno de ejecución compatible con la plataforma exacta, y utilice la compilación de referencia o de contingencia documentada por el fabricante si es necesario. Una actualización de software no puede crear una instrucción de la que el procesador carece. Los cambios de firmware y directivas de seguridad deben seguir el procedimiento del fabricante del sistema y un plan de recuperación, en lugar de una fórmula de optimización genérica.

## Funciones relacionadas y distinciones útiles

[OS Guard y SMEP](https://feex.it/wiki/l/es/hardware/system/os-guard/) · [SMAP](https://feex.it/wiki/l/es/hardware/system/smap/) · [Control-flow Enforcement (CET)](https://feex.it/wiki/l/es/hardware/system/cet/)

## Fuentes y alcance de esta explicación

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)

Estas referencias establecen el comportamiento arquitectónico y los requisitos de software. No verifican de forma independiente cada valor de función en la página de un modelo de hardware vinculado. Para conocer la compatibilidad de un modelo, consulte las pruebas del fabricante en dicha página y compruebe la configuración efectiva del sistema. Este artículo no proporciona una prueba de rendimiento, certificación ni fecha de revisión independiente.

## Relacionado

Estas entidades se conectan a este artículo. El tipo se muestra en cada enlace.

[OS Guard y SMEP: Referencia de arquitectura](https://feex.it/wiki/l/es/hardware/system/os-guard/)[SMAP: Referencia de arquitectura](https://feex.it/wiki/l/es/hardware/system/smap/)[Control-flow Enforcement (CET): Referencia de arquitectura](https://feex.it/wiki/l/es/hardware/system/cet/)

## Fuentes y verificación

Titularidad editorial: Feex. No se registra ninguna fecha de revisión independiente. [Cómo investigamos](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Los volúmenes 1 y 2 describen las familias de instrucciones designadas y CPUID; el volumen 3 describe el estado, la paginación, VMX y los controles de protección. La documentación de la arquitectura no establece la compatibilidad con un modelo en particular.

## ¿Fue útil este artículo?

Un sí o un no es suficiente. Elija un motivo si lo desea o agregue una breve nota.

Datos rápidos

La identidad breve de esta página. Las especificaciones, las fuentes y la historia completa permanecen en el artículo.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/es/hardware/system/execute-disable/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
