Se dice que una familia de modelos de ordenadores es compatible si un determinado software que se ejecuta en uno de los modelos también se puede ejecutar en todos los demás modelos de la familia. Los modelos de ordenadores pueden diferir en rendimiento , fiabilidad o alguna otra característica. Estas diferencias pueden afectar al resultado de la ejecución del software.
La compatibilidad de software puede referirse a la compatibilidad que tiene un software en particular al ejecutarse en una arquitectura de CPU particular , como Intel o PowerPC . [1] La compatibilidad de software también puede referirse a la capacidad del software para ejecutarse en un sistema operativo en particular. Muy rara vez un software compilado es compatible con múltiples arquitecturas de CPU diferentes. Normalmente, una aplicación se compila para diferentes arquitecturas de CPU y sistemas operativos para permitir que sea compatible con el sistema diferente. El software interpretado , por otro lado, normalmente puede ejecutarse en muchas arquitecturas de CPU y sistemas operativos diferentes si el intérprete está disponible para la arquitectura o el sistema operativo. La incompatibilidad de software ocurre muchas veces con el software nuevo lanzado para una versión más nueva de un sistema operativo que es incompatible con la versión anterior del sistema operativo porque puede perder algunas de las características y funcionalidades de las que depende el software.
La compatibilidad de hardware puede referirse a la compatibilidad de los componentes de hardware de una computadora con una arquitectura de CPU , bus, placa base o sistema operativo en particular . [1] El hardware compatible puede no siempre funcionar con su máximo rendimiento declarado, pero puede funcionar con componentes heredados . Un ejemplo son los chips de RAM , algunos de los cuales pueden funcionar a una velocidad de reloj menor (o a veces mayor) que la nominal. [2] El hardware que fue diseñado para un sistema operativo puede no funcionar para otro, si los controladores del dispositivo o del kernel no están disponibles. Por ejemplo, Android no puede ejecutarse en un teléfono con iOS. [3]
En ocasiones, el software libre no es compatible con hardware propietario o software específico. Esto suele deberse a que los fabricantes obstaculizan el uso del software libre, por ejemplo, no revelando las interfaces u otras especificaciones necesarias para que los miembros del movimiento del software libre escriban controladores para su hardware (por ejemplo, porque desean que los clientes ejecuten únicamente su propio software propietario o porque podrían beneficiarse de asociaciones). [4] [5] [6] [7] [8] [9] [10]