Kakehashi es un proyecto experimental que intenta resolver una incompatibilidad especialmente interesante para desarrolladores y administradores de sistemas: ejecutar directamente binarios ARM64 de macOS sobre Linux ARM, sin levantar una máquina virtual completa con macOS. El proyecto ha empezado a llamar la atención de la comunidad técnica, aunque se encuentra todavía en una fase muy temprana y está lejos de poder considerarse una alternativa para producción.
Las claves de Kakehashi en 20 segundos
- Kakehashi busca ejecutar aplicaciones compiladas para macOS ARM64 directamente sobre Linux ARM64.
- No pretende emular un Mac completo ni traducir instrucciones ARM a otra arquitectura.
- El principal problema está en compatibilizar Mach-O, las llamadas al sistema,
dyldy las diferencias entre macOS y Linux. - El enfoque recuerda conceptualmente a Wine, aunque el grado de madurez es incomparable.
- Si evoluciona, podría resultar interesante para herramientas CLI, compilación, testing y determinados procesos de CI/CD.
La idea resulta atractiva precisamente porque cambia la forma habitual de entender la compatibilidad entre plataformas. Durante años buena parte de las conversaciones sobre infraestructura se han reducido a x86 frente a ARM, pero compartir arquitectura de procesador no significa que dos sistemas operativos puedan ejecutar automáticamente los mismos programas.
Un servidor Linux ARM y un Mac con Apple Silicon pueden utilizar instrucciones AArch64 compatibles, pero alrededor de esas instrucciones existe toda una interfaz de software diferente.
Ahí es donde entra Kakehashi.
El procesador ARM no es el principal obstáculo
Cuando se ejecuta software x86 sobre un procesador ARM normalmente hace falta traducir instrucciones. Es lo que convierte la emulación o traducción binaria en una operación compleja y potencialmente costosa.
Con Kakehashi el escenario es diferente.
Los ejecutables nativos de los Mac modernos utilizan ARM64 y Linux está ampliamente disponible sobre la misma arquitectura. No es necesario convertir continuamente instrucciones x86-64 en ARM64 porque ambos lados ya hablan AArch64.
El problema aparece cuando el programa necesita interactuar con el sistema operativo.
macOS utiliza XNU como kernel y sus aplicaciones esperan determinadas llamadas al sistema, estructuras, bibliotecas, convenciones y comportamientos que Linux no proporciona directamente. Además, Apple utiliza Mach-O como formato para sus ejecutables, frente a ELF (Executable and Linkable Format), habitual en Linux.
La propia documentación abierta de XNU muestra la estructura de Mach-O y sus diferentes comandos de carga, entre ellos los relacionados con bibliotecas dinámicas, segmentos, firmas y el cargador dinámico. (GitHub)
Por tanto, tener el mismo procesador resuelve únicamente una parte del problema.
Kakehashi necesita construir el puente restante.
De Mach-O y dyld a las llamadas al sistema
El objetivo se parece más al de una capa de compatibilidad en espacio de usuario que al de un hipervisor tradicional.
Un ejecutable de macOS espera encontrarse con componentes y comportamientos propios del sistema de Apple. Entre ellos está dyld, el cargador dinámico responsable de resolver y cargar las bibliotecas que necesita una aplicación.
Kakehashi tiene que interpretar ese entorno desde Linux y traducir las operaciones necesarias para que puedan resolverse utilizando los mecanismos disponibles en el sistema anfitrión.
Esto incluye el tratamiento de ejecutables Mach-O, memoria virtual, señales, gestión de procesos, threads, llamadas al sistema y bibliotecas.
Es precisamente lo que hace que la afirmación «Linux ARM puede ejecutar programas de macOS porque ambos son ARM» sea demasiado simplista.
La arquitectura de CPU puede coincidir mientras que la ABI (Application Binary Interface) sea diferente.
Una conversación surgida alrededor del proyecto también ha recuperado inevitablemente la comparación con Darling, otra iniciativa veterana que persigue ejecutar software de macOS sobre Linux. La propia comunidad señala, sin embargo, la dificultad del objetivo y las limitaciones que todavía existen especialmente alrededor de aplicaciones gráficas complejas. (Reddit)
La referencia más conocida para entender el concepto sigue siendo Wine.
Wine permite ejecutar una cantidad considerable de software Windows sobre Linux sin virtualizar Windows completo. En lugar de emular necesariamente todo el ordenador, implementa interfaces que esperan las aplicaciones Windows y las conecta con los servicios disponibles en Linux.
Kakehashi persigue una idea comparable para macOS sobre ARM, pero no debería interpretarse que actualmente dispone de la madurez, compatibilidad o cobertura alcanzadas por Wine tras décadas de desarrollo.
El caso de uso interesante podría estar en CI/CD
Ejecutar Photoshop o aplicaciones gráficas complejas de macOS sobre un servidor Linux probablemente no sea el primer escenario donde una tecnología como esta tendría sentido.
Existe otro mucho más interesante para infraestructura: automatización, compilación y CI/CD.
Los equipos que necesitan generar o probar software para macOS suelen necesitar infraestructura Apple. Esto puede traducirse en Mac mini instalados en centros de datos, servicios especializados de Mac en la nube o runners de macOS proporcionados por plataformas de integración continua.
Una capa capaz de ejecutar determinados binarios macOS ARM64 desde Linux ARM podría cambiar algunas de esas situaciones.
No necesariamente permitiría reemplazar un Mac completo. Compilar una aplicación, firmarla, utilizar frameworks propietarios de Apple, ejecutar Xcode o comprobar exactamente cómo se comportará sobre macOS introduce dependencias adicionales que una capa de compatibilidad tendría que reproducir.
Pero existe un espacio intermedio.
Herramientas de línea de comandos, procesos automatizados, determinados tests y ejecutables con pocas dependencias del sistema podrían ser candidatos mucho más realistas.
Aquí está probablemente la parte más interesante de Kakehashi desde el punto de vista de infraestructura.
Los servidores ARM son cada vez más habituales. Si una parte de las cargas actualmente ligadas a máquinas macOS pudiera ejecutarse sobre infraestructura Linux ARM convencional, aparecerían nuevas posibilidades para construir runners de CI/CD ARM más flexibles y potencialmente más económicos.
Eso sigue siendo una posibilidad futura, no una capacidad que pueda darse hoy por disponible.
Compartir CPU no significa compartir plataforma
Kakehashi también sirve para recordar dónde están realmente algunas de las barreras de portabilidad actuales.
El salto de Intel a Apple Silicon hizo muy visible la importancia de la arquitectura del procesador. Pero una vez que diferentes plataformas utilizan ARM64, la siguiente frontera aparece en otra capa.
Formato del ejecutable, ABI, APIs, bibliotecas, kernel y servicios del sistema siguen determinando dónde puede ejecutarse una aplicación.
Es una situación que los administradores conocen bien desde hace años. Un binario Linux compilado para una determinada arquitectura tampoco puede ejecutarse automáticamente en cualquier otro sistema operativo que utilice el mismo procesador.
Kakehashi intenta reducir precisamente esa distancia entre macOS ARM64 y Linux ARM64.
El proyecto todavía debe demostrar hasta dónde puede llegar. La experiencia de iniciativas anteriores demuestra que implementar una capa suficientemente compatible con macOS es un trabajo enorme, especialmente cuando aparecen frameworks gráficos, APIs privadas, cambios entre versiones del sistema y aplicaciones que dependen estrechamente del entorno de Apple.
Pero el experimento plantea una cuestión relevante para el futuro de la infraestructura ARM: una vez desaparece la diferencia de arquitectura de CPU, la compatibilidad del sistema operativo pasa a convertirse en la siguiente frontera que hay que superar.
Preguntas frecuentes
¿Qué es Kakehashi?
Kakehashi es un proyecto experimental que busca ejecutar binarios ARM64 preparados para macOS sobre sistemas Linux ARM mediante una capa de compatibilidad en espacio de usuario.
¿Kakehashi virtualiza macOS?
Su planteamiento no consiste en levantar una máquina virtual completa de macOS. Busca resolver las diferencias existentes entre el entorno esperado por el binario macOS y el proporcionado por Linux.
¿Por qué un programa de macOS ARM no funciona directamente en Linux ARM?
Aunque ambos pueden utilizar instrucciones ARM64, macOS y Linux tienen diferentes kernels, ABI, formatos ejecutables, cargadores dinámicos, bibliotecas y llamadas al sistema. macOS utiliza además Mach-O, mientras Linux utiliza habitualmente ELF.
¿Podría Kakehashi sustituir los runners macOS de CI/CD?
No actualmente. El proyecto está en una fase experimental. Si su compatibilidad aumenta, determinadas herramientas CLI, tests o procesos automatizados podrían convertirse en casos de uso interesantes, pero los workflows dependientes de Xcode y de componentes específicos de Apple plantean obstáculos adicionales.
Fuentes:
- Proyecto Kakehashi y discusión de la comunidad técnica, agosto de 2026.
- Apple Open Source, código y especificaciones Mach-O incluidas en XNU.
- Darling Project, proyecto de compatibilidad de aplicaciones macOS sobre Linux.
- Debate técnico de la comunidad Linux sobre Kakehashi.







