Arm64EC é a arma da Microsoft para o Windows 11 rodar bem com chip Arm

Arm64EC é um recurso que pode, finalmente, fazer o Windows 11 rodar bem softwares em computadores com tecnologia Arm

Emerson Alecrim
Por

Não é de hoje que a Microsoft tenta fazer o Windows emplacar em computadores equipados com chip de tecnologia Arm. Mas limitações de desempenho e compatibilidade com aplicativos sempre foram obstáculos. Pelo menos no Windows 11, essa situação pode mudar. Isso porque o sistema passou a suportar uma solução chamada Arm64EC.

Windows 11
Windows 11 (imagem: Guilherme Reis/Tecnoblog)

O Windows e os computadores Arm

Por padrão, aplicativos para Windows são baseados em x86 e x64 (32 e 64 bits, respectivamente), que são as instruções suportadas pelos processadores da Intel e da AMD. Desde o Windows 10, o sistema operacional também é capaz de executar softwares de 32 ou 64 bits específicos para Arm.

Mas, e se o Windows for instalado em uma máquina com processador Arm e o usuário precisar de aplicativos x86/x64? Nessas circunstâncias, a execução pode ser feita por meio de emulação.

Tanto o Windows 10 quanto o Windows 11 são compatíveis com esse tipo de procedimento. Mas a emulação pode ter um preço. Não raramente, o software emulado não tem o mesmo desempenho de sua execução nativa. Em situações extremas, pode até haver falhas de funcionamento.

Se é assim, o ideal é que o software tenha versões para x86/x64 e Arm, certo? Certo. Mas falar é fácil. Há até ferramentas que ajudam o desenvolvedor a portar um aplicativo de uma plataforma para outra, mesmo assim, esse procedimento pode ser bastante trabalhoso.

É por isso que o suporte a Arm64EC no Windows 11 é uma boa notícia.

Arm64EC: para portar aplicativos aos poucos

O Arm64EC é uma ABI, sigla em inglês para Interface Binária de Aplicação. Basicamente, esse é um recurso que permite que um software combine código Arm com código x64. O código Arm é, então, executado nativamente; por sua vez, o código x64 é emulado.

Qual a lógica disso? Permitir que um aplicativo seja portado de uma plataforma a outra aos poucos. Assim, a parte mais importante de um software pode ser baseada em Arm, enquanto recursos complementares, como extensões ou funções específicas, permanecem em x64, sendo emuladas.

Como a parte mais importante desse software roda de modo nativo, a expectativa é a de que o seu desempenho melhore sensivelmente em relação à sua emulação completa.

Com o passar do tempo, os recursos menos importantes podem ser migrados. Mas o Arm64EC também pode ser útil para “dar vida” a softwares que têm dependências que não são compatíveis com Arm.

Apesar de o suporte a Arm64EC ter sido oficializado nesta semana, o recurso foi anunciado pela Microsoft há mais de um ano. Na ocasião, a companhia destacou as vantagens:

Com o Arm64EC, você pode escolher por começar devagar e avançar de forma gradual. Você pode identificar uma parte da sua base de código que mais se beneficiaria do desempenho nativo e refazê-la como Arm64EC. O restante do aplicativo permanecerá totalmente funcional como x64 emulado, mas as partes Arm64EC recompiladas passarão a ter velocidade nativa.

Ainda é cedo para dizermos “agora vai”. De todo modo, esse não deixa de ser um passo importante para o Windows mergulhar de vez no universo dos chips Arm.

Para os desenvolvedores interessados na ideia, esta página da Microsoft sobre Arm64EC é um bom ponto de partida.