Windows sur Arm
Windows s’exécute traditionnellement sur des machines qui sont alimentées par des processeurs x86/x64, mais plus récemment, s’exécute également sur des appareils alimentés par des processeurs Arm.
Les appareils arm sont particulièrement intéressants, car la nature de l’énergie frugale de l’architecture Arm permet à ces appareils d’offrir une durée de vie de la batterie plus longue tout en offrant d’excellentes performances. Les systèmes Arm sur puce (SoC) incluent souvent d’autres fonctionnalités clés telles qu’un processeur puissant, un GPU, des réseaux de données mobiles Wi-Fi & , ainsi que des unités de processeur neuronal (NPU) pour accélérer les charges de travail d’IA.
Créer des applications Windows qui s’exécutent sur Arm
Windows 10 permet aux applications x86 non modifiées existantes de s’exécuter sur les appareils Arm. Windows 11 ajoute la possibilité d’exécuter des applications Windows x64 non modifiées sur des appareils Arm ! Cette possibilité d’exécuter des applications x86 & x64 sur des appareils Arm donne aux utilisateurs finaux l’assurance que la majorité de leurs outils d’applications & existants fonctionneront bien même sur les nouveaux appareils Arm.
Pour optimiser les performances, la réactivité et l’autonomie de la batterie, les utilisateurs souhaitent et ont besoin d’applications Windows arm natives, ce qui signifie que les développeurs devront créer ou porter des applications Windows natives Arm.
Outils de développement Arm
Microsoft s’efforce de fournir un ensemble d’outils de développement arm natif qui comprend Visual Studio 2022 natif Arm, VSCode, VC++ toolchain, .NET Framework classique, .NET moderne et Java. Microsoft travaille également avec plusieurs tiers et communautés open source pour porter des outils, des runtimes, des frameworks et des bibliothèques courants pour cibler en mode natif Windows sur Arm. Consultez l’annonce de build 2022 concernant cette suite complète d’outils, de services et d’appareils qui permettent aux développeurs de créer et de porter des applications qui ciblent Arm en mode natif aussi facilement que lorsqu’ils ciblent x64.
Services de développement Arm
Aujourd’hui, de nombreux développeurs s’appuient également sur des Machines Virtuelles et des conteneurs. C’est pourquoi l’équipe Azure de Microsoft a récemment annoncé une préversion de son nouveau service Arm Machines Virtuelles et sera bientôt en préversion des conteneurs Arm via Azure Kubernetes Services.
La plupart des développeurs s’appuient également sur l’automatisation de la génération et des tests via l’intégration continue/le déploiement continu (CI/CD), souvent hébergés dans des services cloud, comme Azure DevOps ou GitHub. À la fin de l’été 2022, Microsoft commencera à porter l’exécuteur/agent d’automatisation CI/CD partagé par Azure DevOps et GitHub. Des détails seront bientôt disponibles concernant la disponibilité des services ARM CI/CD hébergés dans le cloud.
Appareils de développement Arm
Les développeurs ont besoin d’appareils Arm sur lesquels créer et tester des applications Windows natives Arm. Plusieurs appareils Arm sont déjà disponibles auprès des partenaires Microsoft. Ces appareils portables, qu’il s’agisse d’un appareil à facteur de forme d’ordinateur portable ou d’une tablette convertible, offrent d’excellentes performances, une autonomie de la batterie et exécutent la gamme croissante d’outils de développement arm-natifs.
Le Kit de développement Windows 2023 (nom de code « Project Volterra ») est le dernier appareil Arm conçu pour prendre en charge les développeurs Windows, les chercheurs en IA et les développeurs qui cherchent à intégrer l’IA à leurs applications et expériences.
Arm64EC - Créer des applications pour Windows 11 sur Arm
Arm64EC (« Emulation Compatible ») vous permet de créer de manière incrémentielle de nouvelles applications, ou de porter des applications existantes, pour tirer parti des performances d’Arm natives lorsque cela est possible, tout en utilisant les bibliothèques de code & x64 existantes jusqu’à ce qu’elles soient entièrement migrées. En savoir plus :
Prise en charge des applications Windows existantes sur Arm
Windows sur Arm exécute des applications Arm natives, ainsi que de nombreuses applications x86 & x64 non modifiées, mais pour des performances et une autonomie optimales, les applications doivent être conçues pour être arm-natives dans la mesure du possible. Les applications Windows peuvent être créées à l’aide de nombreux outils et technologies différents, notamment les applications Win32 C/C++ natives, les applications WinForms/WPF .NET Framework classiques, les applications .NET ou MAUI modernes, ou même les applications créées à l’aide de Java, Python, node, etc.
Rechercher des outils pour le développement Arm
Windows offre une variété d’outils et de frameworks pour prendre en charge le développement d’applications pour Arm, sur Arm.
- Le nouveau Visual Studio natif Arm inclut Visual C++, .NET & .NET Framework et Java et permettra aux développeurs de créer et de déboguer en mode natif des applications Arm sur des appareils Arm. Pour en savoir plus, consultez l’annonce du blog.
- Visual Studio Code prend en charge Arm en mode natif et peut être installé sur les appareils Arm. L’extension VS Code C++ offre également C++ IntelliSense et la prise en charge de génération pour le développement d’applications Windows qui s’exécutent en mode natif sur les appareils Arm64.
- .NET 6 prend déjà en charge Arm, à la fois pour l’exécution d’Arm native et l’émulation x64. Pour développer des applications .NET qui s’exécutent en mode natif sur des appareils Arm64, nous vous recommandons d’installer le nouveau Kit de développement logiciel (SDK) Arm Natif Visual Studio 2022 17.4 et .NET 7 Arm64. Pour en savoir plus sur la prise en charge de .NET 7 pour Arm et les améliorations des performances d’Arm64, consultez le blog .NET.
- Kit de développement logiciel (SDK) Arm64 .NET 6 : Par défaut, si vous
dotnet run
êtes une application .NET 6 avec le Kit de développement logiciel (SDK) Arm64, elle s’exécutera en tant qu’Arm64. L’outildotnet-runtimeinfo
peut être utilisé pour découvrir l’environnement sur lequel .NET s’exécute. Pour en savoir plus, consultez l’annonce du blog .NET 6 sur la prise en charge d’Arm64 .
Notes
Nous utilisons le terme Arm comme raccourci pour les PC qui exécutent la version de bureau de Windows sur les processeurs Arm64 (également communément appelés AArch64). Nous utilisons ici le terme Arm32 comme raccourci pour l’architecture Arm 32 bits (communément appelée Arm dans d’autres documentations). Les PC alimentés par Arm offrent une excellente compatibilité des applications et vous permettent d’exécuter vos applications x86 win32 non modifiées existantes. Les applications Arm s’exécutent en mode natif sans émulation, tandis que les applications x86 et x64 s’exécutent sous émulation sur les appareils Arm.
Conseils supplémentaires pour le développement d’applications Windows qui s’exécutent sur des appareils Arm
Nous vous recommandons d’utiliser MSIX pour empaqueter votre application pour la distribution. Pour plus d’informations sur la façon dont MSIX prend en charge Arm et Arm64, consultez Architectures de package d’application : Arm et Arm64.
Tous les projets Visual Studio ne sont pas configurés pour lancer des projets localement lorsque vous démarrez le débogage (F5) à partir d’un appareil Arm. Vous devrez peut-être configurer Visual Studio pour le débogage à distance, même si votre application s’exécute localement. Pour plus d’informations, consultez Débogage à distance.
Pour rechercher et installer les packages recommandés sur Visual Studio, visitez la page téléchargements de Visual Studio.
- Pour le Outils de contrôle à distance de Visual Studio 2022, faites défiler sous la section Tous les téléchargements et développez le menu déroulant Outils pour Visual Studio 2022. Outils de contrôle à distance de Visual Studio 2022 y figurera. Veillez à case activée la case d’option Arm64, puis à Télécharger.
- Pour la Microsoft Visual C++ redistribuable, faites défiler sous la section Tous les téléchargements et développez le menu déroulant Autres outils et frameworks. Microsoft Visual C++ redistribuable pour Visual Studio 2022 y sera répertorié. Veillez à case activée la case d’option Arm64, puis à Télécharger.
- Si vous utilisez une version antérieure de Visual Studio, sélectionnez le lien Anciens téléchargements en bas de la page pour rechercher les téléchargements associés à votre version de Visual Studio.
Lorsqu’un utilisateur installe votre application sur un appareil Arm à partir du Microsoft Store, Windows 11 sélectionne automatiquement la version optimale de votre application disponible. Si vous envoyez des versions x86, Arm32 et Arm64 de votre application au Microsoft Store, le système d’exploitation installe automatiquement la version Arm64 de votre application. Si vous envoyez uniquement les versions x86 et Arm32 de votre application, le système d’exploitation installe la version Arm32. Si vous envoyez uniquement la version x86 de votre application, le système d’exploitation installera cette version et l’exécutera sous émulation.
Lorsque vous avez le choix de l’architecture d’application, choisissez la version x86 32 bits pour exécuter la version 32 bits de l’application sur un PC Windows sur Arm. Si la version x64 de Win32 d’une application ne fonctionne pas, la plupart des applications auront une version x86 disponible.
Pour plus d’informations sur les architectures, consultez Architectures de package d’application.
Prise en charge d’App Assure pour la migration vers Arm64
Pour obtenir de l’aide lors de la création ou de la mise à jour d’applications pour prendre en charge les appareils Arm64, les développeurs peuvent utiliser App Assure (qui fait partie de FastTrack), un programme de compatibilité des applications qui permet de débloquer les problèmes d’application en fournissant un support technique. Visitez aka.ms/AppAssure.
Ressources supplémentaires
- Satya Nadella’s Build 2022 keynote annonçant « Project Volterra »
- Fonctionnement de l’émulation x86 sur Arm
- Résolution des problèmes des applications de bureau x86
- Résolution des problèmes des applications UWP ARM
- Utilitaire de résolution de problèmes de compatibilité des programmes sur ARM
- Création de pilotes Arm64 avec wdk : instructions pour la création d’un pilote Arm64.
- Débogage d’applications x86 sur Arm | Conseils pour le débogage d’applications x86 sur Arm.
- Vidéo : Création d’applications Arm64 Win32 C++
- Windows 10 sur Arm pour les développeurs (présentation vidéo Microsoft Build 2018)
- Blog : Annonce initiale de Windows 10 prise en charge du développement Arm
- Signaler un bogue
Ressources externes
- Ressources de développeur pour Windows sur Snapdragon par Qualcomm
- Developer.arm.com : Windows sur Arm
- Developer.arm.com : Porter des applications vers Windows sur Arm
- Developer.arm.com : Création d’une application Windows native sur Arm avec WinUI 3
- Developer.arm.com : Création de bibliothèques pour Windows sur Arm