Pagina inicial » como » O que significa para o software rodar nativamente?

    O que significa para o software rodar nativamente?

    Quando as pessoas se referem à execução de software nativo, emulação e compatibilidade de software, a que exatamente elas se referem? Continue lendo enquanto nos aprofundamos no conceito de software nativo.

    A sessão de perguntas e respostas de hoje nos é oferecida com cortesia de SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade.

    A questão

    Leitor de superusuário Throsby está curioso sobre o que significa rodar o software nativamente. Ele escreve:

    Eu tenho me perguntado o que significa para o software rodar nativamente. O que exatamente é esse software e como ele é diferente do software que não é executado nativamente? Como posso saber se um determinado software será executado nativamente no meu computador? É provável que já haja software no meu computador que seja executado nativamente?

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

    A resposta

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

    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 e 32 bits são muito diferentes, geralmente é necessária uma camada de compatibilidade para executar softwares de 32 bits em máquinas de 64 bits. Para as edições de 64 bits do Microsoft Windows, a Microsoft precisava gravar 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 frequentemente instalados em uma pasta chamada Arquivos de programas (x86), Onde x86 significa "32 bits".

    Camadas de compatibilidade tendem a ser mais íntimas com o sistema nativo do que os emuladores. VirtualBoxemula hardware para sistemas operacionais *, e os sistemas que ele emula não tem muita interação direta com o sistema host. WoW64 é um camada de compatibilidade na medida em que permite que os programas de 32 bits sejam executados no Windows de 64 bits de uma maneira mais integrada. O WoW64 ajuda a criar programas compatível ao invés deemulando -los em um ambiente isolado.

    UMA biblioteca de tradução é um componente de 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 pode 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 faziam 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 o MirageOS) garante que as chamadas para a TI-83 vão para os locais novos e atualizados nas calculadoras TI-83/84 +.

    Código independente de plataforma está escrito em uma linguagem que é interpretado por algo que normalmente é executado de forma nativa. 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.


    Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.