top of page

Portabilidad

Desde los inicios de la informática, uno de los grandes problemas ha sido la interoperabilidad entre los sistemas operativos y las diferentes arquitecturas de hardware. Esto quiere decir que un programa diseñado para un sistema operativo y un procesador concretos no puede ser ejecutado en nigún otro.

​

Los programas, independientemente del lenguaje en el que han sido escritos, son compilados en código máquina (código binario), el único lenguaje que es capaz de interpretar el hardware y que es específico para cada tipo de procesador. Además, debido a la complejidad de los sistemas actuales, los programas no pueden comunicarse directamente con la máquina y deben hacerlo a través de las librerías que proporcionan los sistemas operativos. Tomando en cuenta estos dos factores el software resultante solo puede ser ejecutado en máquinas determinadas.

​

Entonces, ¿Como podríamos construir software que fuera útil en cualquier plataforma? Muy simple, utilizando un lenguaje intermedio común a todos los sistemas operativos que sea convertido a cada arquitectura cuando sea necesario.

​

Pero, ¿No hemos dicho que los ordenadores solo entienden el código máquina? .NET Framework y Mono son máquinas virtuales cuya función es “traducir” el programa al lenguaje que cada ordenador entiende conforme se va ejecutando. De esta forma, lo único que dependerá de cada plataforma será la máquina virtual pues los programas serán interpretados al vuelo (a esto se le llama compilación Just-In-Time).

bottom of page