Darling — это свободный и открытый слой совместимости с macOS для Linux. Он дублирует функции macOS, реализуя функционал через альтернативные реализации библиотек и фреймворков, при вызове из программ macOS. Этот метод отличается от прямой эмуляции, где программы запускаются в программной среде Apple в виртуальной машине. Darling называют аналогом Wine для macOS.

Проект стартовал летом 2012 года и основывается на предыдущем проекте под названием maloader, который был прекращен из-за нехватки времени. Слой показал свою работоспособность со многими консольными приложениями, такими как Midnight Commander, The Unarchiver, Python и т. д., он также имеет базовую поддержку графических приложений, основанных на фреймворке Cocoa. Darling имеет возможность извлекать образы дисков Apple.

Проект нацелен на поддержку приложений iOS в будущем.

Архитектура На входе в систему Darling находится загрузчик для бинарных файлов Mach-O, исполняемого формата для операционных систем Apple. Предшественник Darling, maloader, представлял максималистский подход к проблеме, пытаясь воспроизвести все, что делает загрузчик динамических библиотек Apple dyld. Это оказалось сложным, и с «перехода на Mach-O» в 2017 году Darling использует легковесный загрузчик, достаточный для запуска открытого исходного кода Apple dyld.

Для обеспечения бинарных файлов macOS вызовами ядра, Darling использует модифицированное ядро XNU (с лицензией APSL), обернутое в модуль ядра Linux с лицензией GPL. Модуль выполняет типичную работу ядра Mach, в основном обработку IPC портов. Есть некоторые проблемы с лицензированием в модуле darling-mach, поскольку команда добавляет GNU GPL модификации к ядру APSL.

Над ядром находится корневое окружение. Darling, как и Wine, поддерживает префиксы chroot, реализованные с использованием Linux (в отличие от трансляции путей в WINE). Пространства имен PID, IPC и UTS используются для создания контейнера для системы Darwin внутри.

Фреймворки и системные библиотеки в Darling, насколько это возможно, основаны на исходном коде, выпущенном Apple. Переход на Mach-O позволяет легче создавать эти фреймворки, потому что теперь они создаются в формате Mach-O, для которого они были предназначены. Чтобы заполнить пробелы для многих высокоуровневых фреймворков, таких как Cocoa, Darling использует код из Cocotron, и GNUstep.

Лицензия Большая система Darling основана на многих внешних компонентах, которые используют различные лицензии, все из которых являются открытыми. Основная лицензия — GPLv3.

Примечания

Ссылки https://www.darlinghq.org/ https://github.com/darlinghq/darling

Категория:Программное обеспечение, разработанное в 2013 году Категория:Слои совместимости Категория:Свободное программное обеспечение, написанное на Си Категория:Свободное системное программное обеспечение Категория:Эмуляторы для Linux Категория:Программное обеспечение с лицензией GNU GPL