Windows sur Arm
Windows s’exécute traditionnellement sur des machines avec des processeurs x86/x64. Toutefois, il s’exécute aussi depuis peu sur des appareils avec des processeurs Arm.
Les appareils avec arm sont particulièrement intéressants, car la nature frugale de l’alimentation de l’architecture Arm permet à ces appareils d’offrir une durée de vie plus longue de la batterie tout en offrant de bonnes 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 des appareils Arm. Windows 11 ajoute la possibilité d’exécuter des applications Windows x64 non modifiées sur les appareils Arm ! Cette possibilité d’exécuter des applications x86 x64 sur des appareils Arm donne aux utilisateurs finaux confiance dans l’idée que la majorité de leurs outils d’applications existants s’exécuteront correctement même sur les nouveaux appareils arm-alimentés.
Pour optimiser les performances, la réactivité et la durée de vie de la batterie, les utilisateurs souhaitent et ont besoin d’applications Windows natives Arm, ce qui signifie que les développeurs devront en créer ou en porter..
Machines Virtuelles
Vous pouvez créer et déployer des machines virtuelles Windows 11 Arm64 avec des processeurs Ampere Altra Arm sur Azure. Découvrez comment dans cet Article de démarrage rapide.
En savoir plus sur l’utilisation de Windows sur Arm (Machines Virtuelles) :
- FAQ sur Windows sur les machines virtuelles Arm
- Machines virtuelles Azure avec des processeurs Arm Ampere Altra – disponibilité générale
- Déployer un cluster Azure Kubernetes Service (AKS) Arm à l’aide de Terraform - Arm Developer Hub
- En savoir plus sur la génération et le test de l’automatisation via l’intégration continue / le déploiement continu (CI/CD) hébergé dans le cloud, comme Azure DevOps ou GitHub.
Appareils de développement Arm
Le nombre d’options disponibles pour les développeurs qui souhaitent créer et tester des applications natives Arm sur Windows a augmenté.
Les PC Copilot+ offrent une unité de traitement neuronal (NPU) et les dernières fonctionnalités d’INTELLIGENCE artificielle et de capacité de calcul via un large éventail de fabricants d’appareils. Beaucoup d’entre eux sont alimentés par le processeur Snap xeon® X Series arm, offrant 45 billions d’opérations par seconde (TOPS) à utiliser.
Le Kit de développement Windows 2023 (nom de code « Project Volterra ») n’est plus disponible pour acheter de nouveaux appareils, mais reste viable en tant qu’appareil arm conçu pour prendre en charge le développement Windows, la recherche ia et le test pour l’intégration de l’IA dans les applications et les expériences.
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 durée de vie de la batterie optimales, les applications doivent être conçues pour être natives Arm 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 classiques, les applications .NET modernes ou MAUI, ou même les applications créées à l’aide de Java, Python, node, etc.
Rechercher des outils pour le développement Arm
Microsoft fournit met régulièrement à jour l’ensemble d’outils de développement natifs Arm pour créer et transférer des applications qui ciblent nativement des appareils Windows ARM aussi facilement que lorsqu’elles ciblent x64. Prise en charge du développement d’applications pour Arm, sur Arm.
- Les versions natives Arm de Visual Studio comprennent Visual C++, .NET & .NET Framework et Java, et permettent aux développeurs de créer et de déboguer des applications Arm en mode natif sur des appareils Arm. En savoir plus : Arm64 Visual Studio is officially here! (Visual Studio Arm64 est officiellement disponible !) – Nov. 2022, MSVC ARM64 Optimizations in Visual Studio 2022 17.7 (Optimisations MSVC ARM64 dans Visual Studio 2022 17.7) – Sept. 2023.
- Visual Studio Code prend en charge Arm en mode natif et peut être installé sur des appareils Arm. L’extension VS Code C++ offre également intelliSense C++ et prend en charge le développement d’applications Windows qui s’exécutent en mode natif sur des appareils Arm64.
- .NET 6+ prend déjà en charge Arm, à la fois pour l’exécution 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 la nouvelle version Visual Studio 2022 17.4 native Arm et le SDK Arm64 .NET 8. Pour en savoir plus sur la prise en charge de .NET 8 pour Arm et les améliorations des performances pour Arm64, consultez le blog .NET : Arm64 Performance Improvements in .NET 8 (Amélioration des performances Arm64 dans .NET 8) – Oct. 2023.
- Kit de développement logiciel (SDK) Arm64 .NET 6 : par défaut, si vous
dotnet run
une application .NET 6 avec le Kit de développement logiciel (SDK) Arm64, elle s’exécute 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 de blog .NET 6 sur la prise en charge d’Arm64. - La chaîne d’outils VC++ (développement Arm) est la chaîne d’outils GNU pour les versions de l’architecture Arm produites par Arm, permettant aux partenaires, aux développeurs et à la communauté d’utiliser les nouvelles fonctionnalités de l’architecture Arm récente et des projets open-source GCC, Binutils, glibc, Newlib et GDB.
- Prise en charge Java pour Arm dans OpenJDK : Announcing OpenJDK for Windows on ARM (Annonce d’OpenJDK pour Windows sur ARM) – Juin 2020
- Actions GitHub : Actions GitHub, le moteur de workflow CI/CD de GitHub fait partie intégrante des workflows de nombreux développeurs, qui l’utilisent pour générer, tester et déployer en continu des applications. Actions GitHub est désormais disponible pour Windows sur Arm sous deux formes : 1. sous forme d’exécuteurs auto-hébergés qui peuvent être hébergés sur une machine virtuelle Arm ou un appareil Arm, et 2. sous forme d’exécuteurs hébergés par GitHub (actuellement disponibles dans la version bêta privée, mais la version générale sera bientôt disponible).
- Docker Desktop : les conteneurs sont une cible de déploiement populaire pour de nombreuses raisons : workflow de développement simplifié, isolation et sécurité, utilisation efficace des ressources, portabilité et reproductibilité. Docker Desktop s’exécute désormais en mode natif sur Windows sur Arm.
Remarque
Nous utilisons le terme Arm comme raccourci pour les PC qui exécutent la version de bureau de Windows sur les processeurs Arm64 (également appelé 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 avec Arm offrent une grande 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.
Arm64EC – Aide pour la mise à jour des applications Windows pour qu’elles s’exécutent sur Arm
Arm64EC (« Compatible avec l’émulation ») vous permet de créer de manière incrémentielle de nouvelles applications ou de porter des applications existantes, afin de tirer parti des performances natives d’Arm dans la mesure du possible, tout en utilisant les bibliothèques de code x64 existantes jusqu’à la migration complète. En savoir plus :
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 le packaging de distribution de votre application. Pour plus d’informations sur la façon dont MSIX prend en charge Arm et Arm64, consultez architectures de package de l’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 les Outils de contrôle à distance de Visual Studio 2022, faites défiler la section Tous les téléchargements et développez le menu déroulant Outils pour Visual Studio 2022. Les Outils de contrôle à distance de Visual Studio 2022 y seront répertoriés. Veillez à cocher la case d’option Arm64, puis téléchargez.
- Pour Microsoft Visual C++ Redistributable, faites défiler la section Tous les téléchargements et développez le menu déroulant Autres outils et infrastructures . Microsoft Visual C++ Redistributable pour Visual Studio 2022 y figurera. Veillez à cocher la case d’option Arm64, puis téléchargez.
- Si vous utilisez une version antérieure de Visual Studio, sélectionnez le lien de Téléchargements plus anciens 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 des 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 installe cette version et l’exécute sous émulation.
Lorsque vous devez choisir l’architecture d’application, choisissez la version 32 bits x86 pour exécuter la version 32 bits de l’application sur un PC Windows sur Arm. Si la version x64 Win32 d’une application ne fonctionne pas, la plupart des applications disposent d’une version x86.
Pour plus d’informations sur les architectures, consultez architectures de package d’application.
Service de conseil Arm du Soutien aux applications
Cependant, nos conseils pour ajouter la prise en charge d’Arm à votre application Windows vous guident tout au long de la création d’une version optimisée arm de votre ou de vos applications. Le service de conseil arm du Soutien aux applications est là pour vous aider si vous êtes bloqué. Ce service s’ajoute à notre promesse existante : vos applications s’exécuteront sur Windows sur Arm et, si vous rencontrez des problèmes, Microsoft vous aidera à les corriger. Plus d’informations
Inscrivez-vous au service de conseil Arm Windows.
Ressources supplémentaires
- Discours de Satya Nadella au Build 2022 annonçant le « Project Volterra »
- Fonctionnement de l’émulation x86 sur Arm
- Résolution des problèmes liés aux applications de bureau x86
- Résolution des problèmes liés aux applications UWP Arm
- Utilitaire de résolution de problèmes de compatibilité des programmes sur Arm
- Génération 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 d’origine de la prise en charge de Windows 10 pour le développement Arm
- Signaler un bogue
Ressources externes
- Ressources pour les développeurs 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