Arm64EC é a aposta da Microsoft para o Windows 11 rodar bem com chip Arm
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.
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.