/ / / ¿Qué significa que el software se ejecute de forma nativa?

¿Qué significa que el software se ejecute de forma nativa?

Cuando las personas se refieren a ejecutar software nativo, emulación y compatibilidad de software, ¿a qué se refieren exactamente? Siga leyendo a medida que profundizamos en el concepto de software nativo.

La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser: una subdivisión de Stack Exchange, una agrupación de sitios web de preguntas y respuestas dirigida por la comunidad.

La pregunta

El lector de Superusuario Throsby tiene curiosidad sobre lo que significa ejecutar software de forma nativa. El escribe:

Me he estado preguntando qué significa para el softwarecorrer de forma nativa. ¿Qué es exactamente ese software y en qué se diferencia del software que no se ejecuta de forma nativa? ¿Cómo puedo saber si una determinada pieza de software se ejecutará de forma nativa en mi computadora? ¿Es probable que ya haya software en mi computadora que se ejecute de forma nativa?

Siga leyendo para obtener una excelente analogía que explica exactamente lo que significa ser nativo en un sistema dado.

La respuesta

El colaborador de SuperUser Deltik ofrece una analogía fantástica que destaca lo que significa que el software sea nativo y qué tipo de otro software se puede encontrar en un sistema dado:

Un software es nativo de una plataforma si fue diseñado para ejecutarse en esa plataforma.

Una plataforma generalmente se refiere a un sistema operativo, pero también se puede aplicar a dispositivos como Nintendo Game Boy.

Usando Game Boy como ejemplo, obtiene su software de cartuchos. Estos cartuchos contienen código que se ejecuta nativamente en el Game Boy.

Emuladores son una capa que permite el software diseñado para unoplataforma para ejecutarse en otra. Por ejemplo, hay emuladores que pueden ejecutar imágenes de cartuchos de Game Boy y le permiten jugar juegos de Game Boy en su computadora o incluso en su teléfono móvil.

UNA capa de compatibilidad Es algo así como un emulador. Cuando las computadoras y los sistemas operativos de 64 bits se volvieron convencionales, debían ser compatibles con las tecnologías de 32 bits existentes. Dado que las arquitecturas de 64 bits y 32 bits son muy diferentes, a menudo se necesita una capa de compatibilidad para ejecutar software de 32 bits en máquinas de 64 bits. Para las ediciones de 64 bits de Microsoft Windows, Microsoft necesitaba escribir una capa de compatibilidad para que los programas de 32 bits siguieran funcionando en el nuevo sistema de 64 bits. Es por eso que algunos programas a menudo se instalan en una carpeta llamada Program Files (x86), dónde x86 significa "32 bits".

Las capas de compatibilidad tienden a ser más íntimas con el sistema nativo que los emuladores. VirtualBoxemula hardware para sistemas operativos *, y los sistemas que emula no tienen mucha interacción directa con el sistema host. WoW64 es un capa de compatibilidad ya que permite que los programas de 32 bits se ejecuten en Windows de 64 bits de una manera más integrada. WoW64 ayuda a hacer programas compatible más bien queemulando ellos en un ambiente aislado.

UNA biblioteca de traducción Es un componente de las capas de compatibilidad. Cada vez que el código binario se ejecuta de forma no nativa, una biblioteca de traducción ayuda a redirigir las llamadas extranjeras no nativas a las llamadas nativas que el sistema puede entender. Es posible que los programas de ensamblaje escritos para la TI-83 original no sean compatibles con las calculadoras TI-83/84 Plus más nuevas porque algunas llamadas que tenían sentido en la arquitectura de la TI-83 ya no son válidas en la TI-83/84 +. Una biblioteca de traducción (probablemente incluida en shells como MirageOS) asegura que las llamadas para la TI-83 vayan a los lugares nuevos y actualizados en las calculadoras TI-83/84 +.

Código independiente de la plataforma está escrito en un idioma que es interpretado por algo que generalmente corre de forma nativa. Por ejemplo, PHP es un lenguaje de programación que es interpretado y ejecutado por el binario PHP instalado, que ya ha sido compilado nativamente para Windows, Mac y funcionamiento basado en Unixsistemas. El código PHP que escriben los guionistas web es independiente de la plataforma, lo que permite que el código funcione en múltiples sistemas operativos siempre que PHP esté instalado para esos sistemas operativos.


¿Tienes algo que agregar a la explicación? Suena apagado en los comentarios. ¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.