Pendure um projeto para lançar aplicativos do Windows em ARM64

wine-android-featured-image

Desenvolvedores de projetos de vinho Stefan Dösinger e André Hentschel fizeram o anúncio da primeira versão pública do emulador Hangover, que permite a execução de aplicativos Windows de 32 e 64 bits projetado para arquiteturas x86 e x86_64 em ambientes Linux e Android baseados na arquitetura ARM64 (Aarch64).

Ao contrário de executar o Wine com um ambiente de sistema mínimo usando QEMU no modo de emulação no nível de chamada do sistema (usando o mesmo kernel do sistema principal).

Sobre o emulador Hangover

O projeto A ressaca permite que o usuário tenha um desempenho significativamente superior. A aceleração deste projeto é obtido transferindo a camada de emulação para o nível de API Win32 / Win64, em vez de emular chamadas regulares do sistema com a pós-emulação da API Win32 / Win64 com base nelas.
Atualmente, o projeto permite que o usuário execute apenas aplicativos e jogos simples que utilizem as APIs Win64 e Win32.

Para Linux, o suporte para Direct3D foi implementado, que ainda não está disponível para Android devido ao suporte incompleto para OpenGL ES no Wine.

O suporte ao depurador é inexistente e o tratamento de exceções tem bugs conhecidos. Devido a essas razões, os sistemas de proteção contra cópia e anti-cheat estão provavelmente em pior estado do que nas versões regulares do Wine.

Em geral, os aplicativos de 64 bits devem estar em melhor forma do que os aplicativos de 32 bits porque nenhuma estrutura de dados é necessária.
Para garantir o trabalho, é utilizada uma instalação regular do Wine, complementada com várias bibliotecas e camadas DLL.
Em um ambiente Linux, os aplicativos do Windows são executados automaticamente quando o QEMU está no diretório Wine ("C: \ x86 \ qemu-x86_64.exe.so").

Já no Android, é proposto o uso do utilitário cmd para realizar a execução.
O espaço de endereço é limitado a 4 GB ao reservar cada endereço abaixo de 4 GB.

A maioria das principais bibliotecas do Wine são carregadas anteriormente acima de 4 GB para manter o espaço acima abaixo de 4 GB o mais livre possível. A desvantagem disso é que iniciar um novo processo leva cerca de 2 segundos.

vinho-4.0

Hangover a Wine para ARM64

O Wine vê cada processo como um processo de 64 bits, então sua camada WoW64 não está ativa. Isso funcionará bem para aplicativos puros de 32 ou 64 bits, mas causará problemas para aplicativos mistos que esperam uma distinção entre, por exemplo, C: \ windows \ system32 e C: \ windows \ syswow64.

Em relação ao lançamento de aplicativos Windows de 32 bits (x86), são processados ​​ao nível da tradução das estruturas transmitidas entre a aplicação e o Wine (O modelo LLP64 no Windows preserva a compatibilidade básica das estruturas entre WinAPI de 32 e 64 bits).

Para executar aplicativos do Windows de 32 bits, assemblies do Wine de 64 bits são usados ​​e cada processo é primeiro tratado como 64 bits.

No lado do host, apenas as arquiteturas ARM64 e x86_64 são suportadas, mas o código é unificado, permitindo que o projeto seja movido para outras arquiteturas na ordem de bytes da mais nova para a mais antiga (little-endian) sem muito esforço.

Ainda há muito a polir

O desempenho do Hangover no momento deixa muito a desejar. Desde eO principal gargalo é o desempenho do código gerado pelo QEMU.

No entanto, quando executado em um dispositivo de TV com Android Nvidia Shield. O desempenho é suficiente para rodar jogos dos anos 2000.

Os aplicativos testados na Hangover incluem Bloco de notas ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 e Worms Armageddon. Os exemplos do DirectX 9 SDK também são executados em velocidades aceitáveis.

O lançamento é baseado no código base do Wine 4.0, que se reflete no número da versão Hangover 0.4.0. A camada de emulação é baseada no projeto QEMU.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.