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 économe en puissance 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 travaille à 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 lors du ciblage 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 de format 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

Graphique Arm64EC.

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, 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

Graphique Types d’application.

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 des applications Win32 C/C++ natives, des applications WinForms/WPF .NET Framework classiques, des applications .NET ou MAUI modernes, ou même des applications créées à l’aide de Java, Python, node, etc.

Rechercher des outils pour le développement Arm

Graphique Outils

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 la nouvelle version native d’Arm Visual Studio 2022 Preview et le dernier Kit de développement logiciel (SDK) Arm64 . NET 7 Preview . Pour en savoir plus sur la prise en charge de .NET 7 pour Arm, 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’outil dotnet-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 .

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 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 à cocher la case d’option Arm64 , puis à Télécharger.
    • Pour la Microsoft Visual C++ redistribuable, faites défiler 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 à cocher 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.

Ressources supplémentaires

Ressources externes