¿Qué significa que el software se ejecute de forma nativa?
Cuando las personas se refieren a la ejecución de software nativo, emulación y compatibilidad de software, ¿a qué se refieren exactamente? Sigue leyendo a medida que profundizamos en el concepto de software nativo..
La sesión de Preguntas y Respuestas de hoy nos llega cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web de preguntas y respuestas impulsada por la comunidad.
La pregunta
El lector superusuario Throsby siente curiosidad por lo que significa ejecutar el software de forma nativa. El escribe:
Me he estado preguntando qué significa que el software se ejecute 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 determinado.
La respuesta
El colaborador de Superusuarios Deltik ofrece una fantástica analogía que destaca lo que significa que el software sea nativo y qué otro tipo de software se puede encontrar en un sistema determinado:
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 el Nintendo Game Boy..
Usando la Game Boy como ejemplo, obtiene su software de cartuchos. Estos cartuchos contienen código que corre nativamente en el Game Boy.
Emuladores es 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 los cartuchos de Game Boy y te permiten jugar juegos de Game Boy en tu computadora o incluso en tu 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 convirtieron en la corriente principal, debían ser compatibles con las tecnologías de 32 bits existentes. Dado que las arquitecturas de 64 bits y de 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. Es por esto que algunos programas se instalan a menudo en una carpeta llamada
Archivos de programa (x86)
, dóndex86
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 en el sentido de 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 externas y 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 nuevas calculadoras TI-83/84 Plus porque algunas llamadas que tuvieron sentido en la arquitectura de la TI-83 ya no pueden ser válidas en la TI-83/84 +. Una biblioteca de traducción (probablemente incluida en shells como MirageOS) garantiza 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 lenguaje que es interpretado Por algo que suele correr 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 sistemas operativos basados en Windows, Mac y Unix. El código PHP que escriben los creadores de secuencias de comandos web es independiente de la plataforma, lo que permite que el código funcione en varios sistemas operativos, siempre y cuando PHP esté instalado para esos sistemas operativos..
¿Tienes algo que agregar a la explicación? Apague el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.