La versión 5.13 del kernel de Linux agregará soporte inicial para el chip Apple M1, el primer SoC de escritorio con el diseño de Apple Silicon.
Apple reveló el año pasado su primer diseño System-on-a-Chip de escritorio, el Apple M1, basado en la misma arquitectura ARM que la mayoría de los teléfonos inteligentes y tabletas. Si bien Linux ha funcionado bien en dispositivos ARM (como Raspberry Pi) durante años, el hardware de Apple está muy personalizado y requiere soporte de software específico. Afortunadamente, ahora estamos un paso más cerca de ejecutar Linux en Apple Silicon.
Asahi Linux ha estado trabajando para brindar "una experiencia Linux pulida" a Apple Silicon Macs y ha estado enviando su código al proyecto Linux para su inclusión en el kernel oficial de Linux. El trabajo inicial del grupo se ha fusionado en el código base del SoC de Linux y probablemente llegará como parte de la próxima actualización de Linux 5.13.
Es emocionante ver que el soporte inicial para el nuevo hardware de Apple llega al kernel de Linux sólo unos meses después de que el primer hardware comenzara a distribuirse, pero la palabra clave allí es "inicial". Mientras que Linux
técnicamente arranca en M1, todavía estamos muy lejos de conectar una unidad Live USB y hacer clic en un botón de instalación. El código actual incluye soporte para funcionalidad básica de bajo nivel, como multiprocesamiento simétrico a través de mesas giratorias, Manejo de IRQ, conexiones serie y un framebuffer. Linux puede arrancar desde un símbolo del sistema, pero no mucho más: ni siquiera hay soporte completo de gráficos todavía.Si bien el soporte oficial del kernel para el hardware M1 avanza a un ritmo constante, algunas personas han logrado acercarse a una verdadera experiencia de escritorio con varios trucos. Corellium, una empresa de desarrollo que se especializa en virtualización ARM, pudo crear un Escritorio Ubuntu utilizable en el Mac Mini M1. Sin embargo, la mayor parte del trabajo de Corellium no se actualiza al kernel de Linux.
Corellium escribió sobre en qué se diferencia la arquitectura del M1 de otros diseños ARM en una publicación de blog. "El gestor de arranque, tradicionalmente llamado iBoot, carga un archivo objeto ejecutable en un formato llamado Mach-O, opcionalmente comprimido y empaquetado en un formato contenedor firmado basado en ASN.1 llamado IMG4. En comparación, Linux normal en ARM de 64 bits comienza como una imagen binaria plana". El grupo continuó diciendo: "Si eso no fuera suficiente, Apple diseñó su propio controlador de interrupciones, el Apple Interrupt Controller (AIC), no compatible con ninguno de los principales ARM GIC estándares. Y no solo eso: las interrupciones del temporizador, normalmente conectadas a una interrupción normal por CPU en ARM, son en su lugar, se enruta al FIQ, una característica arquitectónica abstrusa, que se ve con más frecuencia en el antiguo ARM de 32 bits. días."
manzana Conjunto de chips M1 Actualmente se envía en MacBook Air, MacBook Pro y Mac Mini. Es un chip de 5 nm con ocho núcleos en total: cuatro núcleos de alto rendimiento y cuatro núcleos de bajo consumo. También hay un motor neuronal para tareas de aprendizaje automático, así como una GPU de ocho núcleos. Apple prometió que el M1 ofrecería un mejor rendimiento que las CPU Intel utilizadas anteriormente y que solo consumiría alrededor de una cuarta parte de la energía, y más tarde pruebas del mundo real respaldó esas afirmaciones. Afortunadamente, el M1 es totalmente compatible con el arranque de kernels personalizados/no firmados, por lo que ejecutar Linux no requiere ningún exploit de seguridad que pueda parchearse más adelante.
El propio macOS de Apple ya es un gran sistema operativo, pero tener Linux de escritorio como opción podría ser un fuerte punto de venta para algunos compradores potenciales de MacBook y Mac Mini. Apple ha enfrentado críticas a lo largo de los años por bloquear algunos aspectos de macOS o abandonar los estándares multiplataforma en favor de alternativas propietarias. Por ejemplo, macOS todavía no es compatible con la API Vulkan multiplataforma para gráficos, solo la API de metal propia de la empresa.