Um software é nativo a uma plataforma se foi projetado para rodar nessa plataforma.
Uma plataforma geralmente se refere a um sistema operacional, mas também pode ser aplicada a dispositivos como o Nintendo Game Boy.
Usando o Game Boy como exemplo, ele obtém seu software de cartuchos. Esses cartuchos contêm código que é executado nativamente no Game Boy.
Emuladores são uma camada que permite que o software projetado para uma plataforma seja executado em outra. Por exemplo, há emuladores que podem executar imagens de cartuchos do Game Boy e permitir que você jogue jogos do Game Boy no seu computador ou até mesmo no seu celular.
Uma camada de compatibilidade é como um emulador. Quando computadores de 64 bits e sistemas operacionais se tornaram mainstream, eles precisavam ser compatíveis com as tecnologias de 32 bits existentes. Como as arquiteturas de 64 bits e 32 bits são muito diferentes, geralmente é necessária uma camada de compatibilidade para executar o software de 32 bits em máquinas de 64 bits. Para as edições de 64 bits do Microsoft Windows, a Microsoft precisava criar uma camada de compatibilidade para que os programas de 32 bits ainda funcionassem no novo sistema de 64 bits. É por isso que alguns programas geralmente são instalados em uma pasta chamada Program Files (x86)
, onde x86
significa "32 bits".
As camadas de compatibilidade tendem a ser mais íntimas do sistema nativo do que os emuladores. VirtualBox emula hardware para sistemas operacionais * , e os sistemas que ele emula não tem muita interação direta com o sistema host. WoW64 é uma camada de compatibilidade porque permite que programas de 32 bits sejam executados no Windows de 64 bits de uma forma mais integrada. O WoW64 ajuda a tornar os programas compatíveis em vez de emulá-los em um ambiente isolado.
Uma biblioteca de tradução é um componente das camadas de compatibilidade. Sempre que o código binário está sendo executado de maneira não nativa, uma biblioteca de tradução ajuda a redirecionar chamadas externas, não nativas, para chamadas nativas que o sistema possa entender. Os programas de montagem escritos para a TI-83 original podem não ser compatíveis com as novas calculadoras TI-83/84 Plus porque algumas chamadas que fazem sentido na arquitetura da TI-83 podem já não ser válidas na TI-83/84 +. Uma biblioteca de tradução (provavelmente incluída em shells como MirageOS ) garante que as chamadas para o TI 83 vá para os novos locais actualizados nas calculadoras TI-83/84 +.
O código independente de plataforma é escrito em uma linguagem que é interpretada por algo que normalmente é executado nativamente. Por exemplo, o PHP é uma linguagem de programação que é interpretada e executada pelo binário do PHP instalado, que já foi compilado nativamente para sistemas operacionais baseados em Windows, Mac e Unix. O código PHP que os web scripters escrevem é independente da plataforma, permitindo que o código funcione em vários sistemas operacionais, desde que o PHP esteja instalado para esses sistemas operacionais.
Diversos
Correções
* Obrigado, Michael Kjörling , por pegando alguns problemas com esta resposta .
Outro
A diferença entre "nativo" e "não nativo" é não preto e branco . (Créditos para afrazier )