Portabilidad


En ingeniería de software , la portabilidad es el proceso de adaptar software con el fin de lograr alguna forma de ejecución en un entorno informático que es diferente de aquel para el que se diseñó originalmente un programa determinado (destinado a tal ejecución) (por ejemplo, CPU diferente , sistema operativo o biblioteca de terceros ). El término también se usa cuando se cambia el software / hardware para hacerlos utilizables en diferentes entornos. [1] [2]

El software es portátil cuando el costo de trasladarlo a una nueva plataforma es significativamente menor que el costo de escribirlo desde cero. Cuanto menor sea el costo de portar software en relación con su costo de implementación, se dice que es más portátil.

El término "puerto" se deriva del latín portāre , que significa "llevar". [3] Cuando el código no es compatible con un sistema operativo o arquitectura en particular , el código debe "transportarse" al nuevo sistema.

El término no se aplica generalmente al proceso de adaptar software para que se ejecute con menos memoria en la misma CPU y sistema operativo, ni se aplica a la reescritura del código fuente en un idioma diferente (es decir, conversión o traducción de idioma).

Los desarrolladores de software a menudo afirman que el software que escriben es portátil , lo que significa que se necesita poco esfuerzo para adaptarlo a un nuevo entorno. La cantidad de esfuerzo realmente necesaria depende de varios factores, incluido el grado en que el entorno original (la plataforma de origen ) difiere del nuevo entorno (la plataforma de destino ), la experiencia de los autores originales en saber qué lenguaje de programación construye y qué lenguaje de terceros Es poco probable que las llamadas a la biblioteca sean portátiles, y la cantidad de esfuerzo invertida por los autores originales solo en usar construcciones portátiles (las construcciones específicas de la plataforma a menudo proporcionan una solución más barata).

La cantidad de CPU y sistemas operativos significativamente diferentes que se utilizan en el escritorio hoy en día es mucho menor que en el pasado. El dominio de la arquitectura x86 significa que la mayoría del software de escritorio nunca se transfiere a una CPU diferente. En ese mismo mercado, la elección de sistemas operativos se ha reducido efectivamente a tres: Microsoft Windows , macOS y Linux . Sin embargo, en los mercados de sistemas integrados y móviles , la portabilidad sigue siendo un problema importante, siendo el ARM una alternativa ampliamente utilizada.