Windows en ARM
Windows se ha ejecutado tradicionalmente en máquinas con tecnología de procesadores x86 / x64, pero más recientemente también se ejecuta en dispositivos con tecnología de procesadores Arm.
Los dispositivos con tecnología Arm son especialmente interesantes porque la naturaleza de energía frugal de la arquitectura Arm permite a estos dispositivos ofrecer una mayor duración de la batería a la vez que ofrece un gran rendimiento. Los sistemas en chip (SoC) de Arm suelen incluir otras características clave como una potente CPU, GPU, Wi-Fi y redes de datos móviles, así como unidades de procesamiento neuronal (NPU) para acelerar las cargas de trabajo de IA.
Compilar aplicaciones de Windows que se ejecutan en Arm
Windows 10 permite que las aplicaciones x86 existentes sin modificar se ejecuten en dispositivos Arm. Windows 11 agrega la capacidad de ejecutar aplicaciones Windows x64 sin modificar en dispositivos Arm. Esta capacidad de ejecutar aplicaciones x86 y x64 en dispositivos Arm da a los usuarios finales la seguridad de que la mayoría de sus aplicaciones y herramientas actuales se ejecutarán bien incluso en los nuevos dispositivos con tecnología Arm.
Para obtener el mejor rendimiento, capacidad de respuesta y duración de la batería, los usuarios querrán y necesitarán aplicaciones de Windows nativas de Arm, lo que significa que los desarrolladores tendrán que compilar o migrar aplicaciones de Windows nativas de Arm.
Virtual Machines
Puede crear e implementar máquinas virtuales de Windows 11 Arm64 con procesadores basados en Arm de Ampere Altra en Azure. Aprende cómo hacerlo en este artículo de Inicio rápido.
Encuentra más información sobre usar máquinas virtuales de Windows en ARM:
- Preguntas frecuentes sobre máquinas virtuales de Windows en ARM
- Azure Virtual Machines con procesadores basados en Ampere Altra ARM - generalmente disponibles
- Implementación de un clúster de Azure Kubernetes Service (AKS) basado en ARM mediante Terraform: Centro para desarrolladores de ARM
- Obtén más información sobre la automatización de compilación y pruebas a través de la integración continua/implementación continua (CI/CD) hospedada en la nube, como Azure DevOps o GitHub.
Dispositivos de desarrolladores de Arm
El número de opciones disponibles para los desarrolladores que desean compilar y probar aplicaciones nativas de Arm en Windows ha crecido.
Los equipos de Copilot+ ofrecen una unidad de procesamiento neuronal (NPU) y las últimas características de inteligencia artificial y capacidad informática a través de una variedad de fabricantes de dispositivos. Muchos de los cuales están alimentados por el procesador de la serie Arm Den Snap® X, que ofrece 45 billones de operaciones por segundo (TOPS) con las que trabajar.
Windows Dev Kit 2023 (nombre de código "Project Volterra") ya no está disponible para comprar nuevo, pero sigue siendo viable como un dispositivo basado en Arm creado para admitir el desarrollo de Windows, la investigación de IA y las pruebas para la integración de la inteligencia artificial en aplicaciones y experiencias.
Compatibilidad con aplicaciones existentes de Windows en Arm
Windows en Arm ejecuta aplicaciones nativas de Arm, así como muchas aplicaciones x86 y x64 no modificadas, pero para obtener el mejor rendimiento y duración de la batería, las aplicaciones deben compilarse para ser nativas de Arm siempre que sea posible. Las aplicaciones de Windows se pueden crear con muchas herramientas y tecnologías diferentes, incluidas las aplicaciones nativas C/C++ Win32, aplicaciones clásicas de .NET Framework WinForms/WPF, aplicaciones .NET o MAUI modernas, o incluso aplicaciones compiladas con Java, Python, Node, etc.
Buscar herramientas para el desarrollo de Arm
Microsoft ofrece continuamente actualizaciones de conjuntos de herramientas de desarrollo nativos de Arm para crear y realizar la portabilidad de aplicaciones dirigidas de forma nativa a dispositivos con tecnología ARM de Windows con la misma facilidad que cuando se dirigen a x64. Compatibilidad con el desarrollo de aplicaciones para Arm, en Arm.
- Visual Studio nativo de Arm incluye Visual C++, .NET & .NET Framework y Java y permitirá a los desarrolladores crear y depurar aplicaciones de Arm de forma nativa en dispositivos basados en Arm. Más información: Visual Studio para Arm64 ya ha llegado de forma oficial (noviembre de 2022), Optimizaciones de MSVC para ARM64 en Visual Studio 2022 17.7 (septiembre de 2023).
- Visual Studio Code admite Arm de forma nativa y se puede instalar en dispositivos Arm. La extensión C++ de VS Code también ofrece IntelliSense de C++ y compatibilidad con la compilación para desarrollar aplicaciones de Windows que se ejecutan de forma nativa en dispositivos Arm64.
- .NET 6+ ya admite Arm, tanto para la ejecución nativa de Arm como para la emulación x64. Para desarrollar aplicaciones .NET que se ejecutan de forma nativa en dispositivos Arm64, se recomienda instalar el nuevo Visual Studio 2022 17.4 nativo de Arm y el SDK de Arm64 de .NET 8. Obtenga más información sobre la compatibilidad de .NET 8 con Arm y las mejoras de rendimiento de Arm64 en el blog de .NET: Mejoras de rendimiento de Arm64 en .NET 8 (octubre de 2023).
- SDK de Arm64 de .NET 6: de forma predeterminada, si
dotnet run
una aplicación .NET 6 con el SDK de Arm64, se ejecutará como Arm64. La herramientadotnet-runtimeinfo
se puede usar para detectar el entorno en el que se ejecuta .NET. Consulte el anuncio del blog de .NET 6 sobre la compatibilidad con Arm64 para obtener más información. - La cadena de herramientas de VC++ (desarrollador de Arm) es la cadena de herramientas GNU para las versiones de la arquitectura de Arm producidas por Arm, lo que permite a los asociados, desarrolladores y la comunidad usar nuevas características de la arquitectura de Arm reciente y de los proyectos de código abierto GCC, Binutils, glibc, Newlib y GDB.
- Compatibilidad de Java con Arm en OpenJDK: Anuncio de OpenJDK para Windows en ARM (junio de 2020)
- Acciones de GitHub: Acciones de GitHub, el motor de flujo de trabajo de CI/CD de GitHub es una parte integral de muchos flujos de trabajo de desarrolladores, lo usan para crear, probar e implementar aplicaciones continuamente. Acciones de GitHub ya está disponible para Windows en Arm en dos tipos: 1. Ejecutores autohospedados que se pueden hospedar en una máquina virtual de Arm o en un dispositivo de Arm y 2. Ejecutores hospedados en GitHub (actualmente disponibles en la versión beta privada, aunque la versión general estará disponible próximamente).
- Docker Desktop: los contenedores son un destino de implementación bastante popular por muchas razones: un flujo de trabajo de desarrollo optimizado, aislamiento y seguridad, uso eficiente de recursos, portabilidad y reproducibilidad. Docker Desktop ahora se ejecuta de forma nativa en Windows en Arm.
Nota:
Usamos el término Arm como una abreviatura para equipos que ejecutan la versión de escritorio de Windows en procesadores Arm64 (también denominados normalmente AArch64). Usamos el término Arm32 aquí como una abreviatura para la arquitectura Arm de 32 bits (comúnmente denominada Arm en otra documentación). Los equipos con tecnología de Arm proporcionan una gran compatibilidad con aplicaciones y permiten ejecutar las aplicaciones x86 win32 sin modificar. Las aplicaciones Arm se ejecutan de forma nativa sin emulación, mientras que las aplicaciones x86 y x64 se ejecutan bajo emulación en dispositivos Arm.
Arm64EC - Ayuda para actualizar aplicaciones de Windows para que se ejecuten en Arm
Arm64EC (“Compatible con emulación”) permite crear nuevas aplicaciones de forma incremental o portar aplicaciones existentes para aprovechar el rendimiento nativo de Arm siempre que sea posible, al tiempo que usa código x64 y bibliotecas existentes hasta que se migre completamente. Más información:
Sugerencias adicionales para desarrollar aplicaciones de Windows que se ejecutan en dispositivos Arm
Se recomienda usar MSIX para empaquetar la aplicación para su distribución. Para obtener más información sobre cómo MSIX admite Arm y Arm64, consulte Arquitecturas de paquete de la aplicación: Arm y Arm64.
No todos los proyectos de Visual Studio están configurados para iniciar proyectos de manera local cuando se inicia la depuración (F5) desde un dispositivo Arm. Es posible que tenga que configurar Visual Studio para realizar la depuración remota, aunque la aplicación se ejecute localmente. Para más información, consulte Depuración remota.
Para buscar e instalar los paquetes recomendados en Visual Studio, visite la página de descargas de Visual Studio.
- Para las Herramientas remotas para Visual Studio 2022, desplácese debajo de la sección Todas las descargas y expanda el menú desplegable Herramientas para Visual Studio 2022. Las Herramientas remotas para Visual Studio 2022 se mostrarán allí. Asegúrese de marcar el botón de opción Arm64 y, a continuación, Descargar.
- Para el Microsoft Visual C++ Redistributable, desplácese debajo de la sección Todas las descargas y expanda el menú desplegable Otras herramientas y marcos. Microsoft Visual C++ Redistributable para Visual Studio 2022 se mostrará allí. Asegúrese de marcar el botón de opción Arm64 y, a continuación, Descargar.
- Si usa una versión anterior de Visual Studio, seleccione el vínculo Descargas anteriores en la parte inferior de la página para buscar las descargas asociadas a la versión de Visual Studio.
Cuando un usuario instala la aplicación en un dispositivo Arm desde Microsoft Store, Windows 11 seleccionará automáticamente la versión óptima de la aplicación que está disponible. Si envía versiones x86, Arm32 y Arm64 de la aplicación a Microsoft Store, el sistema operativo instalará automáticamente la versión de Arm64 de la aplicación. Si solo envía versiones x86 y Arm32 de la aplicación, el sistema operativo instalará la versión de Arm32. Si solo envía la versión x86 de la aplicación, el sistema operativo instalará esa versión y la ejecutará en emulación.
Cuando se le dé a elegir la arquitectura de la aplicación, elija la versión x86 de 32 bits para ejecutar la versión de 32 bits de la aplicación en un equipo con Windows en Arm. Si la versión x64 Win32 de una aplicación no funciona, la mayoría de las aplicaciones tendrán disponible una versión x86.
Para obtener más información sobre las arquitecturas, consulte Arquitecturas de paquete de la aplicación.
Servicio de asesoramiento de asesoría de aplicaciones de Arm
Mientras que nuestras instrucciones para agregar compatibilidad con Arm a la aplicación de Windows le explican cómo crear una versión optimizada para el Arm de las aplicaciones. El servicio de asesoramiento de asesoría de aplicaciones de Arm está disponible para ayudarle si se queda atascado. Este servicio se suma a nuestra promesa existente: las aplicaciones se ejecutarán en Windows en Arm y, si tiene algún problema, Microsoft le ayudará a corregirlo. Más información.
Registrarse en el servicio de asesoramiento de Windows ARM.
Recursos adicionales
- Presentación de Build 2022 de Satya Nadella anunciando "Project Volterra"
- Cómo funciona la emulación de x86 en Arm
- Solución de problemas de aplicaciones de escritorio x86
- Solución de problemas de aplicaciones para UWP de ARM
- Solucionador de problemas de compatibilidad de programas en ARM
- Compilación de controladores Arm64 con el WDK: instrucciones para compilar un controlador Arm64.
- Depuración de aplicaciones x86 en Arm | Instrucciones para depurar aplicaciones x86 en Arm.
- Vídeo: compilación de aplicaciones de Arm64 Win32 C++
- Windows 10 en Arm para desarrolladores (presentación de vídeo de Microsoft Build 2018)
- Blog: anuncio original de la compatibilidad con Windows 10 para el desarrollo de Arm
- Notificar un error