¿Por qué las VM de Apple Silicon son tan diferentes?
(eclecticlight.co)¿Por qué son diferentes las VM de Apple Silicon?
- Ejecutar máquinas virtuales (VM) de macOS en Macs con Apple Silicon puede no parecer popular, pero ha sido durante mucho tiempo uno de los objetivos importantes para Apple.
- Al usar software de virtualización en Macs de la serie M, se puede ver qué tan diferente es de virtualizar macOS y otros sistemas operativos en Macs Intel.
- Explica por qué la virtualización es importante y cómo llegó a cambiar tanto.
Los tres pilares de Apple Silicon
- En la WWDC de junio de 2020, Craig Federighi presentó los tres pilares de Apple Silicon: apps universales que corren en ambas arquitecturas, Rosetta 2 que traduce código de Intel a instrucciones Arm, y la virtualización.
- Incluso antes de que Apple lanzara el Developer Transition Kit, Andreas Wendker demostró una versión preliminar de Parallels Desktop ejecutando Linux como invitado, pero no hubo ninguna mención de Windows.
Los inicios de la virtualización
- En los primeros tiempos de la virtualización, se distinguía entre hipervisores de tipo 1, que corren directamente sobre el hardware, y los de tipo 2 (hosted), donde primero corre el sistema operativo principal sobre el hardware y encima de este corre el hipervisor.
- En computadoras de escritorio, son más comunes los productos de virtualización de tipo 2 como VMware Fusion, Parallels Desktop y Oracle VirtualBox.
Soporte de hardware y virtualización
- Cuando existe soporte de hardware para el hipervisor, es más fácil ejecutar sistemas operativos invitados sin modificar.
- Se puede usar el conjunto de funciones VT-x de Intel o la virtualización AArch64 de los CPU Arm.
- Los problemas de soporte de dispositivos pueden resolverse dentro del framework de virtualización o por el propio software de virtualización.
Lo particular de los chips Apple Silicon
- Todos los dispositivos de hardware en los chips Apple Silicon son distintos de sus equivalentes en las Macs Intel.
- Incluso si Apple hubiera querido documentarlos por completo para uso externo, el esfuerzo de ingeniería necesario para soportar los dispositivos de una Mac Intel habría sido demasiado costoso para terceros.
- Por eso, no era viable esperar que alguien construyera software de virtualización completo empezando solo con un hipervisor, y también habría sido difícil alcanzar el alto rendimiento que esperan Apple y sus usuarios.
Drivers Virtio y virtualización
- En cambio, Apple construyó drivers Virtio integrando el soporte de dispositivos directamente en macOS.
- Virtio es un estándar que ofrece una capa de abstracción para dispositivos de I/O: cuando el sistema operativo invitado intenta abrir un archivo, esto se pasa al paradriver frontend de almacenamiento Virtio, y desde ahí interactúa con el dispositivo de almacenamiento a través del driver backend de Virtio.
- Crear una app de virtualización consiste en configurar y abrir los dispositivos Virtio necesarios, para que el invitado, Virtio y el host se encarguen del trabajo.
La elección de Virtio por parte de Apple
- La elección de Virtio por parte de Apple estuvo influida porque Linux ya tenía buen soporte para Virtio, aunque en ese momento macOS no lo tenía.
- Los ingenieros de Apple construyeron soporte para Virtio en macOS durante los años previos al lanzamiento de Monterey.
- La implementación de Virtio en macOS incluye extensiones que soportan teclado y dispositivos apuntadores, portapapeles compartido ('Spice') y gráficos de alto rendimiento mediante soporte para Metal y GPU.
Ventajas del modelo Virtio
- En el modelo Virtio, es el sistema operativo el que proporciona el soporte, lo que reduce los costos de desarrollo para proveedores como VMware y Parallels, y disminuye el valor comercial de sus productos.
- Apple decide qué hardware y qué funciones soporta la virtualización en Apple Silicon.
El futuro de la virtualización y su flexibilidad
- Al ejecutar versiones anteriores de macOS en una VM, los usuarios pueden seguir usando apps solo para Intel incluso después de que el macOS actual deje de soportar Rosetta 2.
- También se puede ejecutar software que no sea compatible con la versión mínima de macOS en una Mac con Apple Silicon.
- Usando Linux o macOS, los desarrolladores pueden desplegar paquetes ligeros de VM como Docker.
La opinión de GN⁺
- La virtualización en Macs con Apple Silicon adopta un enfoque distinto al de la virtualización tradicional basada en Intel, y parece formar parte de la estrategia de Apple para reforzar la integración entre hardware y software.
- La virtualización a través de Virtio ofrece a los desarrolladores una solución rentable y permite optimizar el rendimiento bajo el control de Apple.
- El avance de la tecnología de virtualización abre la posibilidad de ofrecer a largo plazo entornos de software diversos para los usuarios de Macs con Apple Silicon, especialmente útil para soportar aplicaciones y sistemas antiguos.
2 comentarios
La parte sobre el futuro de la virtualización se ve un poco extraña.
Que la virtualización sea posible no significa automáticamente que pueda ser compatible con los sistemas existentes. Al final, en algún punto hay que traducir las instrucciones x86 a instrucciones arm.
Si esto no lo soporta el HW o el SO (¿Rosetta?), al final no queda otra que emularlo en la capa de la VM, y en ese caso la caída de rendimiento es muy severa.
Incluso ahora se puede instalar Linux para x86 en una Mac Apple Silicon, pero el rendimiento es absurdamente lento. (Creo que fue el año pasado: necesitaba binarios para x86, intenté instalarlo para compilar y lo abandoné de inmediato.)
Opinión de Hacker News