9Aug

O que significa que o software funcionará de forma normal?

Quando as pessoas se referem à execução de software nativo, emulação e compatibilidade de software, o que exatamente eles estão se referindo? Leia mais enquanto mergulhamos no conceito de software nativo.

Pergunta de hoje e amp;A sessão de resposta vem a nós, cortesia do do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q e A.

O questionário

SuperUser Throsby tem curiosidade sobre o que significa executar o software nativamente. Ele escreve:

Eu me perguntei o que isso significa para que o software funcione nativamente. Qual é exatamente esse software e como é diferente do software que não funciona de forma nativa? Como posso saber se um determinado software funcionará nativamente no meu computador? Existe algum software já no meu computador que funcione nativamente?

Leia mais para uma excelente analogia explicando exatamente o que significa ser nativo em um determinado sistema.

A Resposta

Colaborador do SuperUser A Deltik oferece uma analogia fantástica que destaca o que significa que o software é nativo e que tipo de outro software pode encontrar em um determinado sistema:

Um software é nativo de uma plataforma se foi projetado para ser executadoEssa 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 o seu software a partir de cartuchos. Estes cartuchos contêm código que executa nativamente no Game Boy. Os emuladores

são uma camada que permite que o software projetado para uma plataforma seja executado em outro. Por exemplo, existem emuladores que podem executar imagens de cartuchos do Game Boy e permitem que você jogue jogos do Game Boy em seu computador ou até mesmo no seu telefone celular.

A camada de compatibilidade é como um emulador. Quando computadores e sistemas operacionais de 64 bits se tornaram convencionais, eles precisavam ser compatíveis com as tecnologias existentes de 32 bits. Uma vez que as arquiteturas de 64 bits e 32 bits são muito diferentes, uma camada de compatibilidade é muitas vezes necessária para executar software de 32 bits em máquinas de 64 bits. Para as edições de 64 bits do Microsoft Windows, a Microsoft precisava escrever uma camada de compatibilidade para que os programas de 32 bits ainda funcionassem no novo sistema de 64 bits.É por isso que alguns programas são freqüentemente instalados em uma pasta chamada Arquivos de Programas( x86), onde x86 significa "32 bits".

As camadas de compatibilidade tendem a ser mais íntimas com o sistema nativo do que os emuladores são. O VirtualBox emula o hardware para sistemas operacionais * e os sistemas que ele emula não têm muita interação direta com o sistema host. WoW64 é uma camada de compatibilidade na medida em que permite que os programas de 32 bits sejam executados no Windows de 64 bits de forma mais integrada. WoW64 ajuda a tornar os programas compatíveis em vez de emulando em um ambiente isolado.

A biblioteca de tradução é um componente de camadas de compatibilidade. Sempre que o código binário é executado de forma não nativa, uma biblioteca de tradução ajuda a redirecionar as chamadas estrangeiras não-nativas para chamadas nativas que o sistema pode entender. Os programas de montagem escritos para a TI-83 original podem não ser compatíveis com as calculadoras mais recentes da TI-83/84 Plus porque algumas chamadas que tiveram sentido na arquitetura da TI-83 podem não ser mais válidas na TI-83/84 +.Uma biblioteca de tradução( provavelmente incluída em shells como MirageOS) garante que as chamadas para a TI-83 vão para os novos locais atualizados nas calculadoras TI-83/84 +.

O código independente da plataforma está escrito em um idioma que é interpretado por algo que normalmente é executado nativamente. Por exemplo, o PHP é uma linguagem de programação que é interpretada e executada pelo binário PHP instalado, que já foi compilado nativo para sistemas operacionais baseados em Windows, Mac e Unix. O código PHP que os scripts da Web 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.

Tem alguma coisa a adicionar à explicação? Som na parte dos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.