Multiplataforma

En informática, multiplataforma es un atributo conferido a programas informáticos o métodos y conceptos de cómputo que son implementados e interoperan en múltiples plataformas informáticas. El software multiplataforma puede dividirse en dos tipos; uno requiere una compilación individual para cada plataforma que le da soporte, y el otro se puede ejecutar directamente en cualquier plataforma sin preparación especial, por ejemplo, el software escrito en un lenguaje interpretado o bytecode precompilado portable para los cuales los intérpretes o paquetes en tiempo de ejecución son componentes comunes o estándar de todas las plataformas. Por ejemplo, una aplicación multiplataforma puede ejecutarse en Microsoft Windows en la arquitectura x86, Linux en la arquitectura x86 y Mac OS X ya sea en el PowerPC o sistemas Apple Macintosh basados en x86. Una aplicación multiplataforma se puede ejecutar tanto en todas las plataformas existentes, como en tan solo dos plataformas.[1]

Plataformas

Una plataforma es una combinación de hardware y software utilizado para ejecutar aplicaciones de software. Una plataforma puede ser descrita simplemente como un sistema operativo o arquitectura de ordenador, o podría ser la combinación de ambos (un ejemplo de una plataforma común es Microsoft Windows que se ejecuta en la arquitectura x86). Otras conocidas plataformas de computadoras de escritorio incluyen Linux/Unix y Mac OS X (ambos de los cuales son a su vez multiplataforma). Hay, sin embargo, muchos dispositivos, como los teléfonos móviles que también son efectivamente plataformas informáticas, pero menos comúnmente pensado de esa manera. Una aplicación se puede escribir en dependencia de las características de una determinada Plataforma, ya sea el hardware, sistema operativo, o máquina virtual en que se ejecuta. La plataforma Java es una máquina virtual de la plataforma que se ejecuta en sistemas operativos y tipos de hardware, y es una plataforma de software común para escribir (programar).

Plataformas de hardware

Una plataforma de hardware puede referirse a la arquitectura del ordenador o la arquitectura del procesador. Por ejemplo, los CPUs x86 y x86-64 constituyen una de las más comunes las arquitecturas de computadoras en uso en los ordenadores de propósito general. Estas máquinas suelen ejecutar una versión de Microsoft Windows, aunque también se puede ejecutar otro sistemas operativos, tales como Linux, OpenBSD, NetBSD, Mac OS X y FreeBSD.

Una arquitectura ARM es común en los teléfonos inteligentes y Tablet PC, que corren Windows, Android, iOS y otros sistemas operativos móviles.

Plataformas de software

Las plataformas de software puede ser un sistema operativo o entorno de programación, aunque más comúnmente se trata de una combinación de ambos. Una notable excepción a esto es Java, que utiliza un sistema operativo independiente de la máquina virtual para cada código compilado, conocido en el mundo de Java como bytecode. Ejemplos de plataformas de software incluyen:

  • Android (sistema operativo) para teléfonos inteligentes y Tablet PC
  • AmigaOS (m68k), AmigaOS 4 ( PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
  • BSD, muy multiplataforma (ver NetBSD, por ejemplo)
  • Java
  • Linux (x86, x86-64, PowerPC, y otras arquitecturas)
  • iOS (ARM)
  • Mac OS X (x86, x86-64)
  • Microsoft Windows (x86, x86-64, ARM)
  • DOS sistemas de tipo en el x86: MS-DOS, IBM PC-DOS, DR-DOS, FreeDOS, etc.
  • OS/2, eComStation
  • Solaris (SPARC, x86, x86-64)
  • La CLI, también conocido por los nombres de aplicación .NET Framework (de Microsoft) y Mono (de Novell)

Plataforma Java

Como ya se ha señalado, la plataforma Java es una excepción a la regla general de que un sistema operativo es una plataforma de software. El lenguaje Java requiere de una máquina virtual, o un "CPU virtual" en el que se ejecuta todo el código que se escribe en el lenguaje. Esto permite que el mismo ejecutable binario pueda ejecutarse en todos los sistemas, apoyado por el software Java, a través del uso de una máquina virtual Java (JVM). Ejecutables de Java no se ejecutan de forma nativa en el sistema operativo, es decir, ni de Windows, ni Linux ejecutan programas Java directamente.

Aunque el código Java no se ejecuta de forma nativa, la JVM es plenamente capaz de proporcionar servicios relacionados con el sistema operativo, como el disco I/O y el acceso a la red, si los privilegios adecuados se conceden. La JVM permite a los usuarios decidir el nivel de protección adecuado, según una ACL. Por ejemplo, el acceso a disco y de red está habilitado normalmente para aplicaciones de escritorio, pero no para applets basados ​​en el navegador.

JNI también se puede utilizar para permitir el acceso a funciones específicas de los sistemas operativos. En la actualidad, los programas Java pueden ejecutarse en Microsoft Windows, Mac OS X, Linux y sistemas operativos Solaris. Para aplicaciones móviles, los plugins de los navegadores se utilizan en dispositivos basados en Windows y Mac, Android tiene soporte incorporado para Java.

Software multiplataforma

Para que el software pueda ser considerado multiplataforma, debe ser capaz de funcionar en más de una arquitectura de ordenador o sistema operativo. Esto puede ser una tarea que consume tiempo, ya que los diferentes sistemas operativos tienen diferentes interfaces de programación de aplicaciones o API (por ejemplo, Linux utiliza una API diferente de Windows).

El hecho de que un determinado sistema operativo se pueda ejecutar en diferentes arquitecturas de computadora no quiere decir que el software escrito para ese sistema operativo automáticamente funcione en todas las arquitecturas que soporta el sistema operativo. Por ejemplo, a partir de agosto de 2006 OpenOffice.org no se ejecutaba de forma nativa en los AMD64 o Intel 64 líneas de procesadores los estándares para computadores de x86-64 64 bit. Sin embargo, desde entonces la situación ha cambiado, y la suite OpenOffice.org de software ha sido portada a los sistemas de 64-bit. Esto también significa que sólo porque un programa se escriba en un popular lenguaje de programación como C o C++, no tiene por qué funcionar en todos los sistemas operativos que soporten la programación de dicho lenguaje o incluso en el mismo sistema operativo en una arquitectura diferente.

Aplicaciones Web

Las aplicaciones Web suelen ser descritas como multiplataforma, ya que, idealmente, se puede acceder desde cualquiera de los diversos navegadores web en diferentes sistemas operativos. Tales aplicaciones generalmente emplean una arquitectura de sistema cliente-servidor, y pueden variar ampliamente en complejidad y funcionalidad. Esta amplia variabilidad complica considerablemente la meta de capacidad multi-plataforma, que es rutinariamente en contradicción con el objetivo de funcionalidad avanzada.

Aplicaciones básicas

Aplicaciones web básicas lleva cabo la totalidad o la mayor parte del procesamiento de un servidor web "Stateless", y pasar el resultado al navegador web del cliente. Toda la interacción del usuario con la aplicación consta de simples intercambios de solicitudes de datos y las respuestas del servidor. Este tipo de aplicaciones son la norma en las fases iniciales de la World Wide Web de desarrollo de aplicaciones. Tales aplicaciones siguen un simple transacción modelo, idéntica a la de servir páginas web estáticas. Hoy en día, siguen siendo relativamente común, especialmente cuando la compatibilidad entre plataformas y la simplicidad se considera más importante que las funcionalidades avanzadas.

Aplicaciones avanzadas

Ejemplos destacados de las aplicaciones web avanzadas incluyen la interfaz web a Gmail, A9.com, y la página web maps.live.com, parte del Live Search servicio de Microsoft. Tales aplicaciones avanzadas habitualmente dependen de las funciones adicionales que se encuentran sólo en las versiones más recientes de los navegadores web más populares. Estas dependencias incluyen Ajax, JavaScript, HTML "Dinámico", SVG, y otros componentes de las aplicaciones ricas de Internet. Las versiones antiguas de los navegadores web más populares tienden a carecer de apoyo a ciertas características.

Other Languages
Afrikaans: Kruisplatform
asturianu: Multiplataforma
azərbaycanca: Cross platform
Esperanto: Plursistema
فارسی: چندسکویی
Bahasa Indonesia: Lintas platform
Basa Jawa: Lintas platform
Bahasa Melayu: Rentas-pelantar
မြန်မာဘာသာ: Cross platform
Nederlands: Multiplatform
norsk bokmål: Multiplattform
português: Multiplataforma
română: Multiplatformă
Simple English: Cross-platform
Tiếng Việt: Đa nền tảng
中文: 跨平台