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.
Problemas de compatibilidad
[editar]Un problema de compatibilidad (incompatibilidad) surge a partir de la falta o mala interpretación de un programa por un algoritmo, esto conlleva a una mala ejecución de dicho programa o a la imposibilidad de ser ejecutado.
Un ejemplo práctico:
Compatibilidad:
programa_orden_decir=("Hola") sistema> Hola
El programa le indica una orden al sistema y el sistema la interpreta y la ejecuta sin problemas.
Incompatibilidad Caso A (Mala ejecución):
programa_orden_decir=("Hola") sistema> Chau
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):
programa_orden_da31s4s232sd2453ce sistema> Error
El programa le indica una orden al sistema que para él es arbitraria y por ende no logra interpretarla.
Emulación
[editar]La emulación consiste en utilizar un algoritmo de por medio, denominado emulador que simula ser el sistema, arquitectura o aplicación para el cual el programa está preparado, el emulador modifica los comandos del programa en memoria para que el sistema pueda interpretarlo como si estuviera especialmente diseñado para él.
Un ejemplo:
Ejecución de orden del programa:
programa_orden_decir=("huta")
Ejecución del emulador:
emul transformar programa_orden_* en sistema_realizar_*
Ejecución de orden del programa emulada en memoria:
sistema_realizar_decir=("Hola")
Resultado en el sistema:
sistema> Hola
OpenSource
[editar]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.