
Os arquivos .exe não serão executados diretamente no Linux e um executável do Linux não será executado diretamente no Windows. Mas instalamos o VMware no Windows e podemos executar os dois arquivos no mesmo hardware e arquitetura. Como funcionam os executáveis?
Responder1
Para ter uma visão mais detalhada, você pode dar uma olhada na wikipedia sobre VMware Workstation [1] e sobre o Monitor de Máquina Virtual [6] .
VMware Workstation pode salvar o estado de uma máquina virtual (um "instantâneo") a qualquer momento. Esses instantâneos podem ser restaurados posteriormente, retornando efetivamente a máquina virtual ao estado salvo.
Assim você pode executar ao mesmo tempo mais de um sistema operacional, cada um com seu próprio executável.
É como um"Sistema Super Operativo"que alterna continuamente entre cada máquina virtual.
Os diferentes executáveis podem funcionar na parte superior do sistema para o qual foram compilados, e se tudo for feito corretamente eles não notarão nenhuma diferença.
Algumas palavras mais
Em geral você tem diferentes maneiras de configurar uma máquina permitindo trabalhar com executáveis compilados para diferentes sistemas operacionais ou arquiteturas diferentes:
Você pode instalar mais de um sistema operacional, por exemplo, Windows e Linux, ao mesmo tempo.
Na hora da inicialização você escolhecom qual sistema operacional trabalhar.
(+)
Você terá funcionalidade e velocidade completas, mas uma por vez.
(-)
Isto implica utilizar o espaço necessário para cada instalação nos drives.Você pode ter umemulador, um programa que traduz ("emula") cada instrução de máquina, talvez permitindo executar um código de 64 bits em uma máquina de 32 bits. Por exemplo
bochs
[2] ou o famosomame
[3] capaz de emular milhares de videogames e hardware clássicos de arcade em um computador moderno.
(+)
Você provavelmente economizará espaço nas unidades.
(-)
Você correrá devagar porque precisará traduzir cada instrução.Você pode ter umcamada de compatibilidadecomo
wine
[4] (na origem um acrônimo para "Wine Is Not an Emulator"),capaz de executar aplicativos Windows em vários sistemas operacionais compatíveis com POSIX, como Linux, Mac OSX e BSD,traduzindo as chamadas de API do Windows em chamadas POSIX dinamicamente.
(+)
Mais rápido que o anterior(-)
Nem sempre compatívelVocê pode instalar umMonitor de Máquina Virtual, VMM, do tipo II [6] . Essesoftware de virtualização, como o VirtualBox de código aberto [5] , permitirá a instalação de um sistema operacional completo e não modificado no qual os executáveis relativos serão executados. O assim chamadomáquina virtual será executada hospedadapelo seu sistema operacional original (veja a figura abaixo).
... um tipo de virtualização que permite que um sistema operacional não modificado com todos os seus softwares instalados seja executado em um ambiente especial,em cima do seu sistema operacional existente.Este ambiente, denominado “máquina virtual”, é criado pelo software de virtualização interceptando o acesso a determinados componentes de hardware e determinados recursos [5] .
VMM do Tipo I,II [6] :
Por último, mas não menos importante, umhipervisor do tipo I [6] , oumonitor de máquina virtual(VMM),um software, firmware ou hardware de computador que cria e executa máquinas virtuais. Desta vez ele rodará diretamente no hardware e o Sistema Operativo ficará tãoum de seus programas. Veja a figura acima.
Ele é executado diretamente no hardware do host para controlar o hardware e gerenciar sistemas operacionais convidados.Por esse motivo, às vezes são chamados de hipervisores bare metal. Um sistema operacional convidado é executado como um processo no host.
Conclusão
Cada executável é compilado para um sistema operacional através do qual deve se comunicar com o hardware. Diferentes instruções, bibliotecas, políticas... por esta razão um executável do Windows normalmente não roda no Linux evice-versa, mas como você pode ver, há muitas maneiras de cuidar dissotradução de idiomas, adicionando uma camada de um tipo diferente, para que o programa fique inconsciente.
Observação:Alguns programas assembler precisavam de acesso direto à memória e interrupções [7] e podem precisar de cuidados especiais.