Os desenvolvedores da distribuição Cutefish, que está criando um ambiente de desktop semelhante ao macOS, anunciaram o desenvolvimento da camada Reef para executar aplicativos macOS no Linux. Os programas compilados para macOS são instalados a partir de arquivos no formato dmg e se integram ao desktop principal no Linux.
Os aplicativos são executados sem emuladores, máquinas virtuais ou componentes proprietários do macOS. A Reef está sendo desenvolvida do zero, sem uso das contribuições do projeto Darling e sem engenharia reversa do software fechado da Apple. No processo de desenvolvimento, a funcionalidade é implementada com base nas capacidades necessárias para executar aplicativos específicos — os desenvolvedores tentam executar um determinado programa, identificam funções que não funcionam e as implementam. O código da Reef ainda não foi publicado publicamente, mas em breve a camada promete ser adicionada ao pacote da distribuição Cutefish.
A camada criada pelo projeto Cutefish possui cerca de 460 mil linhas de código e utiliza mais de 80 bibliotecas externas, entre elas componentes do macOS fornecidos pela Apple sob licenças abertas, como Core Foundation (swift-corelibs-foundation), Grand Central Dispatch (swift-corelibs-libdispatch), a biblioteca padrão da linguagem Swift, bibliotecas Libc, lzfse, objc4, o vinculador dyld e o núcleo xnu. O projeto também utiliza WebKit, LLVM libc++, libc++abi, libunwind, curl e Tcl. A API Core Data é implementada sobre SQLite, e a API gráfica Metal sobre OpenGL. Um framework de rede é disponibilizado, além do suporte à autossalvamento de janelas e rolagem inercial ao estilo macOS.
Entre os aplicativos já executáveis sobre a Reef estão o leitor de RSS NetNewsWire, o emulador de terminal Ghostty, o compactador Keka, editores de texto CotEditor e TextMate, o calendário Itsycal e o sistema de notas.
Things 3 e o teste Speedtest. Nas avaliações de desempenho, os programas para macOS ainda estão sendo executados várias vezes mais lentamente, por exemplo, o executável CotEditor para Linux inicia em 115 ms, enquanto para macOS leva 235 ms; as diferenças no tempo de abertura de um arquivo com 20 mil linhas são de 0.12 s contra 0.50 s, a resposta ao pressionar uma tecla é de 18 ms contra 21 ms, e o tempo de renderização durante a rolagem é de 1.2 ms contra 4.4 ms.



Fonte: opennet.ru
