Compatibilidad (informática)

La compatibilidad es la condición que hace que un programa y un sistema, arquitectura o aplicación logren comprenderse correctamente tanto directamente o indirectamente (mediante un algoritmo).

A este algoritmo que hace que un programa logre ser comprendido por un sistema, arquitectura o aplicación se lo denomina emulador por el hecho de que es un intérprete entre el programa y el sistema, arquitectura o aplicación.

Incompatibilidad Caso A (Mala ejecución): El programa le indica una orden al sistema y el sistema la interpreta pero de forma errónea, devolviendo un resultado no esperado.

Incompatibilidad Caso B (Imposibilidad de ejecución): El programa le indica una orden al sistema que para él es arbitraria y por ende no logra interpretarla.

Un ejemplo: Ejecución de orden del programa: Ejecución del emulador: Ejecución de orden del programa emulada en memoria: Resultado en el sistema: Hoy en día los programas OpenSource (código abierto), generalmente en los sistemas basados en Unix lograron solucionar bastante el tema de la compatibilidad, por el hecho de que el sistema que compilará el programa, podrá antes adaptar el código a su kernel modificando opciones de compilación, generalmente ingresando en la Interfaz de línea de comandos el siguiente comando: ./configure Luego compila el código con el siguiente comando: make Y por último instala los ejecutables compilados con: make-install Logrando así obtener un programa genérico completamente adaptado al sistema operativo que lo ha compilado.