Дистрибутив Cutefish развивает прослойку для запуска macOS-приложений в Linux - QubStore

Дистрибутив Cutefish развивает прослойку для запуска macOS-приложений в Linux

Дистрибутив Cutefish, известный своей одноимённой средой рабочего стола в стиле macOS, объявил о создании прослойки Reef, которая позволит запускать приложения macOS в Linux.

Дистрибутив Cutefish развивает прослойку для запуска macOS-приложений в Linux
Дистрибутив Cutefish развивает прослойку для запуска macOS-приложений в Linux

Собранные под macOS программы устанавливаются из dmg-файлов и интегрируются с рабочим столом Linux. При этом приложения работают без эмуляторов, виртуальных машин и проприетарных компонентов Apple. Reef пишется с нуля — без использования наработок проекта Darling и без обратного инжиниринга закрытого кода Apple. Разработчики идут от задачи к функции: пытаются запустить конкретную программу, находят неработающие места и постепенно их реализуют. Пока исходники Reef не открыты, но в скором времени прослойку обещают включить в состав дистрибутива Cutefish.

Кодовая база насчитывает порядка 460 тысяч строк. В ней задействованы некоторые компоненты macOS, которые Apple поставляет под открытыми лицензиями: Core Foundation (swift-corelibs-foundation), Grand Central Dispatch (swift-corelibs-libdispatch), стандартная библиотека Swift, Libc и lzfse. Загрузчик и runtime Objective-C написаны с нуля на основе изучения кода objc4 runtime, компоновщика dyld и ядра xnu — без копирования. Также используются WebKit, LLVM libc++, libc++abi, libunwind, curl, SQLite и Tcl. Графический API Metal реализован поверх OpenGL. Кроме того, есть сетевой фреймворк, реализация API Core Data, поддержка автосохранения окон и инерционная прокрутка в стиле macOS.

Среди программ, которые уже запускаются поверх Reef, отмечены RSS-ридер NetNewsWire, эмулятор терминала Ghostty, архиватор Keka, текстовые редакторы CotEditor и TextMate, календарь Itsycal, система заметок Things 3 и тест Speedtest. По производительности macOS-приложения пока в несколько раз медленнее: исполняемый файл CotEditor для Linux стартует за 115 мс против 235 мс у macOS, открытие файла с 20 тысячами строк занимает 0.12 сек. против 0.50 сек., реакция на нажатие клавиши — 18 мс против 21 мс, а отрисовка при прокрутке — 1.2 мс против 4.4 мс.

Ссылка на основную публикацию