9Aug

¿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 mientras profundizamos en el concepto de software nativo.

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de of SuperUser, una subdivisión de Stack Exchange, una agrupación de Q & A sitios web dirigida por la comunidad.

La pregunta

SuperUser reader Throsby siente curiosidad acerca de qué significa ejecutar el software de forma nativa.Él escribe:

Me he estado preguntando qué significa que el software se ejecute de forma nativa.¿Qué es exactamente ese software y cómo es diferente de un 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 haya software en mi computadora que se ejecute de forma nativa?

Siga leyendo para obtener una excelente analogía que explica exactamente qué significa ser nativo en un sistema determinado.

La respuesta

SuperUser Contribuidor 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 determinado:

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

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

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

Los emuladores son una capa que permite que el software diseñado para una plataforma se ejecute en otra. Por ejemplo, hay emuladores que pueden ejecutar imágenes de cartuchos de Game Boy y te permiten jugar juegos de Game Boy en tu computadora o incluso en tu teléfono móvil. La capa de compatibilidad

A es como un emulador. Cuando las computadoras de 64 bits y los sistemas operativos se convirtieron en la corriente principal, necesitaban ser compatibles con las tecnologías existentes de 32 bits. Dado que las arquitecturas de 64 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 aún funcionaran en el nuevo sistema de 64 bits. Esta es la razón por la que algunos programas a menudo se instalan en una carpeta llamada Archivos de programa( x86), donde x86 significa "32 bits".

Las capas de compatibilidad tienden a ser más íntimas con el sistema nativo que los emuladores. VirtualBox emula el hardware para sistemas operativos *, y los sistemas que emula no tienen mucha interacción directa con el sistema host. WoW64 es una capa de compatibilidad en que permite que los programas de 32 bits se ejecuten en Windows de 64 bits de una manera más integrada. WoW64 ayuda a que los programas sean compatibles con en lugar de emulando en un entorno aislado. Biblioteca de traducción

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

El código independiente de la plataforma está escrito en un lenguaje que es interpretado por algo que normalmente se ejecuta de forma nativa. Por ejemplo, PHP es un lenguaje de programación interpretado y ejecutado por el binario PHP instalado, que ya ha sido compilado nativo para Windows, Mac y sistemas operativos basados ​​en Unix. El código PHP que los web scripters escriben son independientes 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.

¿Tiene 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í.