El modo nativo generalmente se refiere a una de dos cosas relacionadas con el software o hardware de la computadora. Cuando el software se ejecuta de forma nativa, se ejecuta en el hardware real de la computadora en lugar de mediante emulación o mediante la intervención de otro programa. Este estado es común para la mayoría de los programas informáticos normales que se ejecutan en un sistema. El otro uso significa que una pieza de hardware o software está diseñada específicamente para ejecutarse en un entorno determinado. En muchos sentidos, esta es una versión más general del primer uso, pero involucra otras situaciones como el modo de compatibilidad.
El factor más importante en el primer uso es la emulación. Un emulador puede imitar un conjunto específico de hardware, lo que permitirá que los programas no nativos se ejecuten en un entorno en el que se sientan cómodos. Son posibles otras formas de emulaciones, pero la emulación de hardware tiene el mayor impacto en el modo nativo.
El otro factor que influye en esta parte del modo nativo son los sistemas de soporte de software. Estos programas apoyan otro programa; esto es diferente de la verdadera emulación porque el software en ejecución funciona en el hardware existente, pero el programa no funcionará sin el otro programa en ejecución. Esta situación es mucho menos común que la emulación, pero ocurre en algunos lugares, como los navegadores web. Esencialmente, los programas se ejecutarán dentro de un navegador pero no fuera.
El otro aspecto del modo nativo se centra en el modo de compatibilidad. Este es un método utilizado por los sistemas operativos para extender su funcionalidad a programas más antiguos. A medida que avanzan los sistemas y el hardware, las llamadas realizadas por los sistemas más antiguos caen en desgracia o se utilizan por otras razones. El modo de compatibilidad permite que un sistema moderno transfiera la información de un lado a otro con tecnología anterior.
El modo de compatibilidad puede parecer el mismo que un emulador, pero en realidad es bastante diferente. Los emuladores crean un entorno artificial que permite que se ejecuten programas no nativos. El modo de compatibilidad actúa más como un traductor, tomando información de un sistema y convirtiéndola al idioma utilizado por el otro.
Todos estos sistemas crean situaciones no nativas. El modo nativo se define como un sistema que no utiliza ninguno de estos procesos de compatibilidad adicionales. Siempre que un programa esté diseñado para funcionar en una plataforma específica y no requiera ningún soporte de software o traducción, es nativo. Tan pronto como un programa no cumple con estos requisitos, no es nativo.
El hecho de que un programa se ejecute en modo nativo en una situación no significa que siempre sea un programa nativo. Si el mismo programa se ejecuta en dos sistemas operativos diferentes, puede ejecutarse de forma nativa en uno, pero requiere emulación en el otro. Además, a medida que un programa envejece, eventualmente requerirá un modo de compatibilidad solo para funcionar correctamente.