Windows en Arm: Así de bien funciona la emulación de 64 bits

Cuando Microsoft lanzó por primera vez Windows 10 en Arm, solo podía ejecutar aplicaciones x86 de 32 bits en emulación. Microsoft nos dijo que su telemetría mostraba que la mayoría de las aplicaciones de Windows que los clientes querían ejecutar tenían versiones de 32 bits, especialmente las aplicaciones más antiguas donde es poco probable que los desarrolladores las vuelvan a compilar para Arm. Pero eso no abarcaba todas las aplicaciones de Windows para nada.

Índice de Contenido
  1. Herramientas para cambiar a 64 bits
  2. El estado de la emulación de 64 bits
  3. Arm en el servidor

Herramientas para cambiar a 64 bits

Windows en Arm: Así de bien funciona la emulación de 64 bits - Software | Imagen 1 Newsmatic

Microsoft esperaba que muchos más desarrolladores volvieran a compilar aplicaciones como versiones Arm nativas, porque su razón para ser de 64 bits en primer lugar a menudo era por razones de rendimiento, por lo que ejecutarlos en emulación no sería ideal.

Eso significa obtener el soporte de lenguaje y framework que los desarrolladores necesitan, y nuevamente ha sido un proceso gradual.

Chromium, el Chromium Embedded Framework y Electron han estado disponibles para Windows en Arm desde finales de 2019, con compilaciones nativas de Chromium llegando a principios de 2020. .NET 5 trajo soporte ARM64, pero el soporte para WPF y WinForms es muy reciente, llegando en el primer avance de .NET 6. La versión completa de .NET 6 no se lanzará hasta noviembre de 2021 y las discusiones sobre cuánto tiempo llevará obtener soporte ARM64 para WPF en .NET 5 aún están en curso.

La adquisición de jClarity por parte de Microsoft significó que asumió el trabajo de portar OpenJDK a Arm para Windows 10. Hay compilaciones nativas para Python y Rust. No está disponible todavía IIS y la falta de una compilación nativa oficial de Go está retrasando Git para Windows, aunque ya hay una compilación inicial no oficial de ARM64 de Go-lang para Windows en Arm, específicamente para habilitar la aplicación VPN Wireguard. El paquete de compatibilidad de OpenCL y OpenGL se desarrolló inicialmente para ayudar a Adobe a llevar Photoshop nativo, que depende en gran medida de la aceleración GPU, a Windows 10 en Arm. Hay una versión de vista previa que admite otras aplicaciones OpenCL y OpenGL, pero es solo para OpenCL 1.2 y anteriores y OpenGL 3.3 y anteriores.

Enseñanza y Aprendizaje con Microsoft: Herramientas y Lecciones para Profesores de todos los Niveles

Pero si bien los desarrolladores han sido rápidos para hacer que sus aplicaciones sean nativas para los dispositivos Arm de Apple, el progreso ha sido más lento en Windows, incluso para las propias aplicaciones de Microsoft. Office y Edge se ejecutan de forma nativa, al igual que la versión Windows 10 (Bedrock) de Minecraft, pero no la versión original de Java (requiere una versión mucho más reciente de OpenGL). Visual Studio Code se admite recientemente en Arm, Power Toys todavía está bloqueado por varias dependencias y actualmente no hay planes para una versión nativa en Arm de Visual Studio. La expectativa de Microsoft es que los desarrolladores compilen en un sistema x86 más potente en lugar de realizar su trabajo de desarrollo en una PC Arm, aunque los desarrolladores de Clang han creado un compilador nativo para Windows en Arm, que se ejecuta en compilaciones dos veces más rápido que en emulación.

El estado de la emulación de 64 bits

La forma en que Windows emula aplicaciones x86 en software en Arm se basa en la forma en que emula aplicaciones x86 utilizando emulación de instrucciones de hardware en PC x64, la capa de abstracción "Windows on Windows". El sistema todavía se llama WoW64 en ARM64 (donde en realidad emula aplicaciones x86 y ARM32, usando XTAJIT.DLL y WOWARMW.DLL respectivamente, porque varias aplicaciones de Windows incluidas, como la Tienda, todavía son de 32 bits en Arm). Pero la emulación x64 en realidad no usa WoW.

Aunque la tecnología central para traducir binarios a la arquitectura Arm es similar a WoW y se basa en lo que Microsoft había aprendido al hacer emulación x86, cuando se mira los detalles, este es un nuevo enfoque para la compatibilidad.

Como nos dijo Microsoft en ese momento, agregar soporte x64 sería más trabajo; ha tomado algún tiempo y aún está en progreso.

Las primeras versiones internas de emulación de x64 se lanzaron a finales de 2020. En ese momento, Hari Pulapaka, director principal del grupo de administración de programas del equipo de kernel de Windows, indicó que la versión final de emulación de 64 bits debería ejecutar aplicaciones tan rápido o, gracias al espacio de dirección más grande disponible para aplicaciones de 64 bits y la forma en que el código de 64 bits utiliza registros, incluso más rápido que 32 bits.

"Hablando en general, las aplicaciones emuladas de x86 y x64 deberían tener un rendimiento similar, a excepción del espacio de dirección más grande. Todavía estamos en las primeras etapas de nuestra emulación, por lo que aún no se han agregado todas las optimizaciones para x64. Vendrán en los próximos meses", dijo Pulapaka.

Guía de Examen de Certificación Lotus Notes: Desarrollo de Aplicaciones y Administración del Sistema

De manera similar, la emulación x86 ha seguido mejorando; hay nuevas optimizaciones que aceleran algunas operaciones en aplicaciones .NET como TurboTax y Quicken actualmente en versiones preliminares. En dispositivos Arm de tercera generación como Surface Pro X y Galaxy Book S, esas instrucciones específicas pueden ser emuladas el doble de rápido que antes.

Las aplicaciones x64 que probamos en una Surface Pro X original en su mayoría funcionaron bien, aunque algunas aplicaciones se bloquearon o se cerraron tan pronto como las abrimos (y algunas se bloquearon la primera vez pero luego funcionaron sin problemas). Para obtener el mejor rendimiento, ejecute las aplicaciones dos veces: la primera vez que el código se está convirtiendo para ejecutarse en Arm; la segunda vez se está ejecutando desde la memoria caché (y Windows ha realizado algunas optimizaciones mientras está en caché, mejorando aún más el rendimiento).

Las nuevas versiones preliminares agregarán más DLL del sistema ARM64, lo que mejorará la compatibilidad y permitirá que más aplicaciones se ejecuten correctamente, y ya hemos visto que las aplicaciones funcionan incluso aquellas que no se ejecutaban en emulación anteriormente.

Las versiones de 64 bits de Signal, Slack, Bluestacks, Power BI Desktop, GIMP, Photoshop y la aplicación Xbox se instalaron y funcionaron correctamente. Las aplicaciones que necesitan el marco Uranium se instalan y ejecutan, pero son un poco lentas. El rendimiento de Sketchbook de Autodesk fue excelente, incluso para herramientas de dibujo exigentes, pero tenía tendencia a bloquearse; tuvimos problemas similares con Affinity Photo, que funcionaba bien excepto cuando se cerraba inesperadamente.

Otras aplicaciones de 64 bits tuvieron más problemas. CorelDRAW y PHOTO-PAINT se instalaron y abrieron, pero luego se cerraron inmediatamente. Camtasia se instaló como administrador pero se bloqueó cuando intentamos grabar. Esos son los problemas que probablemente se solucionarán rápidamente a medida que salgan nuevas versiones preliminares con las DLL que las aplicaciones requieren. También hay aplicaciones como el cliente de sincronización de Dropbox que requieren controladores nativos que Dropbox no ha proporcionado, por lo que no funcionarán en emulación.

Comparamos el rendimiento de la emulación de 32 bits y 64 bits para Photoshop, GIMP y Power BI Desktop en una variedad de tareas (aunque no siempre pudimos encontrar la misma versión del software). Para tareas de edición comunes, la versión de 32 bits de Photoshop que se ejecuta en emulación fue a menudo muy ligeramente más rápida que las versiones nativas de 64 bits y emuladas de 64 bits, que tenían un rendimiento muy similar: dado que ambas están en versión beta y no se han optimizado por completo, eso no es inesperado, pero la diferencia fue generalmente entre un efecto que lleva dos segundos y tres segundos para finalizar, y muchas tareas de edición comunes se completaron al instante en ambas versiones. La versión nativa tenía una clara ventaja en una secuencia compleja de tareas como una unión panorámica de fotografías: fue más de dos veces más rápida que la versión de 32 bits, y cuatro veces más rápida que la versión de 64 bits en emulación.

Cómo gestionar eficazmente grandes volúmenes de correo electrónico

De manera similar, la edición de fotos simple fue un poco más rápida en la versión de 32 bits de GIMP que en la versión de 64 bits hasta que ejecutamos acciones con script más complejas, momento en el que la emulación de 64 bits fue de dos a cuatro veces más rápida.

Power BI Desktop también fue ligeramente más rápido al cargar informes e importar datos de Excel cuando se ejecuta en emulación de 32 bits, aunque el rendimiento de la emulación de 64 bits mejoró significativamente con la última versión preliminar de Windows. Microsoft está trabajando arduamente en ampliar y optimizar la emulación de 64 bits en Arm.

Arm en el servidor

Microsoft anunció sus planes de llevar Windows Server a Arm mucho antes de lanzar Windows para laptops Arm. Se ha utilizado para ejecutar infraestructura interna de Azure como almacenamiento, indexación y búsqueda, donde la eficiencia de baja potencia y bajo costo del hardware es particularmente importante. Es posible que los proveedores de placas base de servidor hayan retrasado o cancelado proyectos, pero Microsoft ha probado Windows Server en silicio Arm de Ampere Altra, Fujitsu y Marvell ThunderX2 para Azure, y Marvell dijo en 2019 que su cartera Arm se usa en servidores de nivel de producción internos.

En el Arm DevSummit 2020, Arun Kishan, miembro técnico del equipo de kernel de Windows, dijo que Microsoft también estaba explorando el uso de Windows Server en ARM64 para servicios de hosting de VM y colaborando con Arm en la certificación SystemReady para servidores, que incluiría la ejecución de Windows Server, "acercándolos un paso más a la implementación en Microsoft Azure".

Esto no significa necesariamente que Windows Server completo en Arm esté a la vuelta de la esquina, pero la emulación de 64 bits sería fundamental para las cargas de trabajo del servidor Arm que los clientes desearían ejecutar, y puede ser otra razón para que Microsoft lo agregue al cliente de Windows.

Arm en Azure también completará una pieza crítica que falta para los desarrolladores que apuntan a Windows 10 en Arm: la capacidad de construir un sistema CI/CD (Integración Continua/Implementación Continua) con una herramienta como Azure Pipelines, para que puedan probar y implementar fácilmente correcciones de errores y nuevo código.

Integración de StarOffice: calendarios

Los desarrolladores necesitan poder trabajar directamente en dispositivos Arm para realizar pruebas, dice Ed Vielmetti, quien dirige el proyecto de ecosistema Works On ARM en Equinix. Works On Arm proporciona a los proyectos de código abierto infraestructura Arm, incluidas Go, Node.js y varias bibliotecas de Python, para ayudar a los desarrolladores a hacer que su código funcione en Arm, para que pueda ejecutarse en centros de datos.

"Tan pronto como pueda realizar compilaciones y pruebas nativas, querrá comenzar a hacerlo. Obtienes mucha más fidelidad en el entorno de prueba al hacer pruebas en el elemento real. Y si puedes convencer a un desarrollador de que use la arquitectura objetivo como su conductor diario, puedes solucionar todo tipo de problemas porque los solucionarán por puro terquedad y frustración", explicó Vielmetti.

Vielmetti nos dijo que varios proyectos de código abierto están interesados en portar su código a Windows, pero quieren ejecutarse tanto en Windows Server como en Windows de escritorio; eso aún no está disponible para Arm. También necesitan VM Arm en la nube para que puedan realizar sus pruebas a gran escala. Eso está bloqueando NodeJS y herramientas como GitHub Desktop que dependen de él.

"Si está desarrollando un sistema operativo o lenguaje, o alguna biblioteca compleja en movimiento, es muy importante tener suficiente infraestructura en su lugar para que no solo pueda compilar su software una vez para la distribución, sino construirlo continuamente a medida que evoluciona y cambia con el tiempo", dijo Vielmetti.

"El problema con el código a gran escala no es solo un desarrollador solitario escribiendo código que él compila en su propia máquina y publica; es una horda de desarrolladores que contribuyen en una variedad de plataformas, con pruebas que son en su mayor parte automatizadas."

Y esa prueba automatizada necesita infraestructura en la nube con VM Arm, en este caso.

Cómo gestionar eficazmente el correo electrónico en tu empresa

"La disponibilidad de infraestructura en la nube es transformadora porque puedes comenzar a admitir proyectos que tienen tasas de cambio más rápidas de las que puede manejar el hardware de escritorio", explicó Vielmetti. "Sin ese tipo de acceso completo a esa oferta de computación, es muy difícil imaginar que los grandes proyectos tengan mucha suerte para mantener cualquier tipo de cadencia de lanzamiento. Si intentas desarrollar un sistema complejo, qué tan rápido puedo actualizar una nueva versión y ponerla a prueba realmente marca una gran diferencia. En ausencia de ese ecosistema, los desarrolladores de Windows tienen problemas para lograr ese ciclo virtuoso de ‘construir, probar, probar’".

Con suerte, cuando Azure Pipelines finalmente obtenga VM Arm, eso desbloqueará a muchos desarrolladores para traer código a Windows en Arm. Mientras tanto, la emulación mejora constantemente para admitir un rango más amplio, aunque no completo, de software.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Windows en Arm: Así de bien funciona la emulación de 64 bits , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.