Software pequeno para executar aplicativos de 16 bits

2

Não consigo executar um pequeno aplicativo do Windows de 16 bits no meu sistema de 64 bits. As sugestões que encontrei on-line envolvem a execução do aplicativo de 16 bits em uma máquina virtual, mas executar um sistema operacional inteiro apenas para executar um aplicativo pequeno parece ser um exagero.

Eu imagino que seria possível fazer um pequeno software que emula as coisas necessárias que o aplicativo de 16 bits precisa. Alguém sabe de tal solução?

    
por Armand P 20.11.2013 / 13:30

1 resposta

1

I'd imagine it would be possible to make a small software that emulates the necessary stuff the 16-bit app needs. Does anyone know of such a solution?

Na verdade isso não é trivial. Uma CPU x86 no modo amd64 não apenas ganha muita funcionalidade (registradores duplos, registradores MMX duplos, modo de endereço de 64 bits, ...) também perde o acesso a algumas opções legadas. Ele pode executar aplicativos de 32 bits sem problemas, mas não há mais como executar aplicativos de 16 bits de forma nativa. Assim, você realmente precisa emular uma CPU mais antiga. A emulação é relativamente lenta e não é totalmente trivial.

A solução usual para isso é colocar a coisa toda em uma VM, por exemplo, um alimentado por qEMu que pode emular outras CPUs.

Suggestions I found online involve running the 16-bit app inside a virtual machine, but running a whole OS just to run a small app seems like overkill.

É um pouco exagerado. A solução certa seria recompilar o aplicativo e executá-lo como um executável de 64 bits (muitas vezes trivial se o aplicativo for bem escrito e usar coisas como size_t em vez de apenas assumir que as coisas nunca mudarão). Isso exige que você tenha acesso ao código-fonte, o que nem sempre é o caso.

Soluções alternativas seriam:

  • Mantenha um antigo sistema DOS / windows 2/3 / 3.11 por perto (Por favor, G-d NÃO )
  • executá-lo dentro de uma VM.
  • Emule a máquina antiga por meio do VINHO .

A primeira solução não é recomendada. Você ficaria preso no sistema operacional antigo, por exemplo windows 7 32bit (não use um sistema operacional mais antigo que não tenha mais atualizações. Não use o XP, a menos que você queira alternar o sistema operacional antes de 8 th de abril de 2014 . Ou use um host dedicado sem acesso à rede, todas as portas USB coladas fechadas, etc. Isso tem a desvantagem óbvia de prejudicar a usabilidade.

Executá-lo em uma VM é ótimo. Funciona, pode ser isolado. É fácil fazer backup e você pode migrar a VM para uma nova máquina sempre que necessário. Prova futura é uma coisa boa.
A desvantagem óbvia é executar a VM, mas parte dela pode ser automatizada (por exemplo, inicializá-la automaticamente quando você liga sua área de trabalho. Ative o desligamento da VM no desligamento do Windows, etc. etc.

A emulação também funcionará e geralmente será mais lenta. (a maioria das exceções onde a emulação é mais rápida envolveu WINE, Linux e jogos onde a chamada OpenGL foi muito mais rápida no Linux, causando um inesperado ganho de velocidade de 40% para alguns jogos). Ainda assim, mais lento não é ruim, considerando que o aplicativo antigo provavelmente rodou em alguns 16-ish MHz 286 (era de 16 bits) e agora em um núcleo moderno multi-GigaHertz. Mesmo que diminuísse em 99%, ainda seria mais rápido.

Ainda assim, para facilitar a manutenção e a preparação futura: obtenha uma VM com o win7-32 bit e execute o aplicativo nele.

    
por 20.11.2013 / 15:27