Se dice que una familia de modelos de computadora es compatible si cierto 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 computadora pueden diferir en rendimiento , confiabilidad o alguna otra característica. Estas diferencias pueden afectar el resultado de la ejecución del software.
La compatibilidad de software puede referirse a la compatibilidad que tiene un software en particular ejecutándose en una arquitectura de CPU particular como Intel o PowerPC . [1] La compatibilidad del 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 los diferentes sistemas. 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 para software nuevo lanzado para una versión más reciente 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] Es posible que el hardware compatible no siempre funcione al máximo rendimiento indicado, pero aun así puede funcionar con componentes heredados . Un ejemplo son los chips de RAM , algunos de los cuales pueden funcionar a una frecuencia de reloj inferior (o a veces superior) a la nominal. [2] Es posible que el hardware diseñado para un sistema operativo no funcione para otro si los controladores del dispositivo o del kernel no están disponibles. Por ejemplo, Android no se puede ejecutar en un teléfono con iOS. [3]
A veces, el software libre no es compatible con hardware propietario o software específico. Esto a menudo se debe a que los fabricantes obstruyen el software libre, al no revelar las interfaces u otras especificaciones necesarias para que los miembros del movimiento FOSS escriban controladores para su hardware; por ejemplo, porque desean que los clientes ejecuten sólo su propio software propietario o porque podrían beneficiarse. de asociaciones. [4] [5] [6] [7] [8] [9] [10]