Windows no ARM
O Windows tradicionalmente é executado em computadores que são alimentados por processadores x86/x64, mas, mais recentemente, também é executado em dispositivos alimentados por processadores Arm.
Dispositivos Arm são particularmente interessantes porque a natureza de energia frugal da arquitetura Arm permite que esses dispositivos ofereçam maior duração da bateria, proporcionando um grande desempenho. O SoC (Systems on Chip) Arm muitas vezes inclui outros recursos importantes, como uma CPU poderosa, GPU, redes de dados Wi-Fi e móveis, além de NPUs (unidades de processamento neural) para acelerar cargas de trabalho de IA.
Criar aplicativos do Windows executados no Arm
O Windows 10 permite que aplicativos x86 não modificados existentes sejam executados em dispositivos Arm. O Windows 11 adiciona a capacidade de executar aplicativos Windows x64 não modificados em dispositivos Arm! Essa capacidade de executar aplicativos x86 e x64 em dispositivos Arm dá aos usuários finais a confiança de que a maioria dos aplicativos e ferramentas existentes será bem executada mesmo em novos dispositivos alimentados pelo Arm.
Para obter o melhor desempenho, capacidade de resposta e duração da bateria, os usuários desejarão e precisarão de aplicativos do Windows nativos do Arm, o que significa que os desenvolvedores precisarão criar ou portar aplicativos do Windows nativos do Arm.
Máquinas Virtuais
Você pode criar e implantar VMs Windows 11 Arm64 com processadores baseados em Ampere Altra Arm no Azure. Saiba como neste Guia de início rápido.
Saiba mais sobre o uso de máquinas virtuais do Windows no Arm:
- Perguntas frequentes sobre a máquina virtual do Windows no Arm
- Máquinas Virtuais do Azure com processadores Ampere Altra baseados em Arm – disponíveis para o público
- Implantar um cluster do Serviço de Kubernetes do Azure (AKS) baseado em Arm usando o Terraform – Hub de desenvolvedores do ARM
- Saiba mais sobre a automação de compilação e teste por meio da Integração Contínua/Implantação Contínua (CI/CD) hospedada na nuvem, como o Azure DevOps ou o GitHub.
Dispositivos de desenvolvedor Arm
O número de opções disponíveis para desenvolvedores que desejam criar e testar aplicativos nativos do Arm no Windows vem crescendo.
Os PCs Copilot+ oferecem uma Unidade de Processamento Neural (NPU) e os mais recentes recursos de IA e capacidade de computação por meio de uma variedade de fabricantes de dispositivos. Muitos dos quais são alimentados pelo processador Snapdragon® X Series baseado em Arm, oferecendo 45 trilhões de operações por segundo (TOPS) para trabalhar.
O Windows Dev Kit 2023 (codinome "Project Volterra") não está mais disponível para compra nova, mas permanece viável como um dispositivo baseado em Arm criado para dar suporte ao desenvolvimento do Windows, pesquisa de IA e testes para a integração de IA em aplicativos e experiências.
Suporte para aplicativos existentes do Windows no Arm
O Windows no Arm executa aplicativos Arm nativos, além de muitos aplicativos x86 e x64 não modificados, mas para o melhor desempenho e duração da bateria, os aplicativos devem ser criados para serem nativos do Arm sempre que possível. Os aplicativos do Windows podem ser criados usando muitas ferramentas e tecnologias diferentes, incluindo aplicativos nativos C/C++ Win32, aplicativos clássicos do .NET Framework WinForms/WPF, aplicativos .NET ou MAUI modernos ou até mesmo aplicativos criados usando Java, Python, Node, etc.
Localizar ferramentas para o desenvolvimento do Arm
A Microsoft está sempre fornecendo atualizações de conjunto de ferramentas de desenvolvedor nativas do Arm para criar e adaptar aplicativos direcionados nativamente a dispositivos com Windows ARM com a mesma facilidade com que visam x64. Suporte ao desenvolvimento de aplicativos para Arm, no Arm.
- O Visual Studio nativo para Arm inclui o Visual C++, .NET & .NET Framework e Java e permitirá que os desenvolvedores criem e depurem aplicativos Arm nativamente em dispositivos baseados em Arm. Saiba mais: O Visual Studio Arm64 oficialmente chegou!( Nov 2022), Otimizações de MSVC ARM64 no Visual Studio 2022 17.7 (setembro de 2023).
- O Visual Studio Code suporta nativamente Arm e podem ser instalados nos dispositivos Arm. A extensão C++ do VS Code também oferece o IntelliSense do C++ e o suporte de build para o desenvolvimento de aplicativos do Windows que são executados nativamente em dispositivos Arm64.
- O .NET 6+ já dá suporte ao Arm, tanto para execução nativa do Arm quanto para emulação x64. Para desenvolver aplicativos .NET executados nativamente em dispositivos Arm64, recomendamos instalar o novo Visual Studio 2022 17.4 nativo do Arm e o SDK do Arm64 do .NET 8. Saiba mais sobre o suporte do .NET 8 para Arm e as melhorias de desempenho para Arm64 no Blog do .NET: Melhorias de desempenho do Arm64 no .NET 8 (Out 2023).
- SDK do Arm64 do .NET 6: por padrão, se você
dotnet run
um aplicativo .NET 6 com o SDK do Arm64, ele será executado como Arm64. A ferramentadotnet-runtimeinfo
pode ser usada para descobrir o ambiente em que o .NET está em execução. Confira o comunicado do blog do .NET 6 sobre o suporte do Arm64 para saber mais. - A cadeia de ferramentas VC++ (Desenvolvedor Arm) é a cadeia de ferramentas GNU para versões da Arquitetura Arm produzidas pela Arm, permitindo que parceiros, desenvolvedores e a comunidade usem novos recursos da recente Arquitetura Arm e de projetos de código aberto GCC, Binutils, glibc, Newlib e GDB.
- Suporte Java para Arm no OpenJDK: Anunciando o OpenJDK para Windows no ARM (junho de 2020)
- GitHub Actions: o GitHub Actions, o mecanismo de fluxo de trabalho de CI/CD do GitHub, é parte integrante dos fluxos de trabalho de muitos desenvolvedores; eles o usam para criar, testar e implantar aplicativos continuamente. Agora o GitHub Actions está disponível para Windows no Arm em 2 versões: 1. executores auto-hospedados que podem ser hospedados em um dispositivo Arm VM ou Arm, e 2. Executores hospedados no GitHub (atualmente disponíveis em beta privado, mas o lançamento geral está chegando em breve).
- Docker Desktop: os contêineres são um destino de implantação bastante popular por vários motivos; um fluxo de trabalho de desenvolvimento simplificado, isolamento e segurança, utilização eficiente de recursos, portabilidade e reprodutibilidade. Agora o Docker Desktop é executado nativamente no Windows no Arm.
Observação
Usamos o termo Arm como uma abreviação para computadores que executam a versão da área de trabalho do Windows em processadores Arm64 (também chamados de AArch64). Usamos o termo Arm32 aqui como uma abreviação para a arquitetura Arm de 32 bits (geralmente chamada de Arm em outra documentação). Os computadores da plataforma Arm fornecem ótima compatibilidade com o aplicativo e permitem que você execute seus aplicativos x86 win32 não modificados existentes. Os aplicativos Arm são executados nativamente sem qualquer emulação, enquanto os aplicativos x86 e x64 são executados em emulação em dispositivos Arm.
Arm64EC - Ajuda para atualizar aplicativos do Windows para execução no Arm
O Arm64EC (“Compatível com Emulação”) permite que você crie novos aplicativos de forma incremental ou porte aplicativos existentes para usufruir do desempenho nativo do Arm sempre que possível, utilizando código e bibliotecas x64 existentes até serem totalmente migrados. Saiba mais:
Dicas adicionais para desenvolver aplicativos do Windows executados em dispositivos Arm
É recomendável usar o MSIX para empacotar seu aplicativo para distribuição. Para obter mais informações sobre como o MSIX dá suporte a Arm e Arm64, confira Arquiteturas de pacote de aplicativos: Arm e Arm64.
Nem todos os projetos do Visual Studio são configurados para iniciar projetos localmente quando você inicia a depuração (F5) de um dispositivo Arm. Talvez seja necessário configurar o Visual Studio para depuração remota, mesmo que seu aplicativo esteja sendo executado localmente. Para obter mais informações, confira Depuração remota.
Para localizar e instalar os pacotes recomendados no Visual Studio, visite a página de downloads do Visual Studio.
- Para as Ferramentas Remotas para Visual Studio 2022, role abaixo da seção Todos os downloads e expanda o menu suspenso Ferramentas para Visual Studio 2022. As Ferramentas Remotas para Visual Studio 2022 serão listadas ali. Certifique-se de marcar o botão de opção Arm64 e, em seguida, Baixar.
- Para o Pacote Redistribuível do Microsoft Visual C++, role abaixo da seção Todos os downloads e expanda o menu suspenso Outras ferramentas e estruturas. Os Pacotes Redistribuíveis do Microsoft Visual C++ para Visual Studio 2022 será listado lá. Certifique-se de marcar o botão de opção Arm64 e, em seguida, Baixar.
- Se você estiver usando uma versão mais antiga do Visual Studio, selecione o link Downloads mais antigos na parte inferior da página para pesquisar os downloads associados à sua versão do Visual Studio.
Quando um usuário instala seu aplicativo em um dispositivo Arm da Microsoft Store, o Windows 11 seleciona automaticamente a versão ideal do seu aplicativo que está disponível. Se você enviar versões x86, Arm32 e Arm64 do seu aplicativo para a Microsoft Store, o sistema operacional instalará automaticamente a versão do Arm64 do seu aplicativo. Se você enviar apenas as versões x86 e Arm32 do seu aplicativo, o sistema operacional instalará a versão do Arm32. Se você enviar apenas a versão x86 do seu aplicativo, o sistema operacional instalará essa versão e a executará em emulação.
Quando for dada a escolha da arquitetura do aplicativo, escolha a versão x86 de 32 bits para executar a versão de 32 bits do aplicativo em um computador com Windows no Arm. Se a versão x64 win32 de um aplicativo não funcionar, a maioria dos aplicativos terá uma versão x86 disponível.
Para obter mais informações sobre arquiteturas, confira Arquiteturas de pacote de aplicativos.
Serviços de consultoria de Garantia de Aplicativo do Arm
Enquanto nossas diretrizes para adicionar suporte do Arm ao seu aplicativo do Windows explicam como criar uma versão otimizada para o Arm de seus aplicativos. Os serviços de consultoria de Garantia de Aplicativo do Arm estão disponíveis para ajudar se você ficar preso. Esse serviço se soma à nossa promessa existente: seus aplicativos serão executados no Windows no Arm e, se você encontrar problemas, a Microsoft ajudará você a corrigi-los. Saiba mais.
Inscreva-se no Serviços de Consultoria do Windows Arm.
Recursos adicionais
- Palestra do Build 2022 de Satya Nadella anunciando "Project Volterra"
- Como a emulação x86 funciona no Arm
- Solução de problemas de aplicativos de área de trabalho x86
- Solução de problemas de aplicativos UWP do Arm
- Solução de problemas de compatibilidade de programas no Arm
- Compilar drivers Arm64 com o WDK: instruções para criar um driver Arm64.
- Depurar aplicativos x86 no Arm | Diretrizes para depuração de aplicativos x86 no Arm.
- Vídeo: criar aplicativos do Arm64 Win32 C++
- Windows 10 no Arm para desenvolvedores (apresentação de vídeo do Microsoft Build 2018)
- Blog: anúncio original do suporte do Windows 10 para desenvolvimento do Arm
- Relatar um bug
Recursos externos
- Recursos de desenvolvedor para Windows no Snapdragon da Qualcomm
- Developer.arm.com: Windows no Arm
- Developer.arm.com: compatibilizar aplicativos com o Windows no Arm
- Developer.arm.com: criar um aplicativo nativo do Windows no Arm com o WinUI 3
- Developer.arm.com: criar bibliotecas para Windows no Arm