Los desarrolladores de la distribución Cutefish, que está desarrollando un entorno de escritorio del mismo nombre al estilo de macOS, han anunciado el desarrollo de Reef, una capa para ejecutar aplicaciones de macOS en Linux. Los programas compilados para macOS se instalan desde archivos en formato dmg e se integran con el escritorio principal en Linux.
Las aplicaciones se ejecutan sin emuladores, máquinas virtuales y componentes propietarios de macOS. Reef se desarrolla desde cero sin utilizar los trabajos del proyecto Darling y sin ingeniería inversa del software cerrado de Apple. Durante el proceso de desarrollo, la funcionalidad se implementa en función de las capacidades necesarias para ejecutar aplicaciones específicas: los desarrolladores intentan ejecutar un programa determinado, identifican funciones que no funcionan y las implementan. El código de Reef aún no se ha publicado públicamente, pero pronto prometen agregar la capa al distribución de Cutefish.
La capa creada por el proyecto Cutefish cuenta con aproximadamente 460 mil líneas de código y utiliza más de 80 bibliotecas externas, entre las que se encuentran componentes de macOS proporcionados por Apple bajo licencias abiertas, como Core Foundation (swift-corelibs-foundation), Grand Central Dispatch (swift-corelibs-libdispatch), la biblioteca estándar del lenguaje Swift, las bibliotecas Libc, lzfse, objc4, el vinculador dyld y el núcleo xnu. El proyecto también utiliza WebKit, LLVM libc++, libc++abi, libunwind, curl y Tcl. La API de Core Data se implementa sobre SQLite, mientras que la API gráfica Metal se ejecuta sobre OpenGL. Se proporciona un marco de red, soporte para la autoguardado de ventanas y desplazamiento inercial al estilo de macOS.
Entre los programas que ya se ejecutan sobre Reef se encuentran el lector de RSS NetNewsWire, el emulador de terminal Ghostty, el compresor Keka, los editores de texto CotEditor y TextMate, el calendario Itsycal y el sistema de notas Things 3 y la prueba de Speedtest.
Things 3 y la prueba Speedtest. Durante las pruebas de rendimiento, los programas para macOS aún se ejecutan varias veces más lentos; por ejemplo, el archivo ejecutable CotEditor para Linux se inicia en 115 ms, mientras que para macOS en 235 ms, las diferencias en el tiempo de apertura de un archivo con 20,000 líneas son de 0.12 s frente a 0.50 s, la respuesta al pulsar una tecla es de 18 ms frente a 21 ms, y el tiempo de renderizado al desplazar es de 1.2 ms frente a 4.4 ms.



Fuente: opennet.ru
