Дарлинг (программное обеспечение) - Darling (software)

дорогой
Милый проект logo.png
Простое какао-приложение HelloWorld, продемонстрированное на macOS (слева) и GNU / Linux (справа)
Простое какао-приложение HelloWorld, продемонстрированное на macOS (слева) и GNU / Linux (справа)
Оригинальный автор (ы)Любош Долежел
Репозиторийhttps://github.com/darlinghq/darling
Операционная системаGNU /Linux
ТипУровень совместимости
ЛицензияРазличные, прежде всего GPLv3[1]
Интернет сайтдорогой.org

дорогой это бесплатно и с открытым исходным кодом macOS уровень совместимости для GNU / Linux. Он дублирует функции macOS путем предоставления альтернативных реализаций библиотек и фреймворков, вызываемых программами macOS.[2] Этот метод дублирования отличается от других методов, которые также можно рассматривать как эмуляцию, когда программы macOS запускаются в виртуальная машина. Дарлинга называли двойником ВИНО для запуска приложений OS X.[3]

Проект стартовал летом 2012 года и основан на предыдущем проекте под названием maloader, реализация которого была прекращена из-за нехватки времени. Разработчик тестирует приложения, такие как Полуночный командир или же Unarchiver на слое. До сих пор было показано, что слой работает со многими консольные приложения, но в настоящее время не поддерживает графические приложения.[4][5] У Дарлинга есть способность извлекать Образ диска Apple.[6]

Проект также может поддерживать iOS приложения в будущем.[7]

Архитектура

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

Чтобы предоставить двоичным файлам macOS ядро, Дарлинг использует модифицированный XNU ядро в оболочке Linux модуль ядра. Этот модуль выполняет типичную работу Ядро Маха, в основном порты МПК умение обращаться.[9] Некоторые проблемы с лицензированием существуют в модуле darling-mach, поскольку команда добавляет GNU GPL модификации к APSL ядро.[10]

Выше ядра находится корневая среда. Любимая, как ВИНО, поддерживает chroot префиксы, реализованные с использованием Linux overlayfs (в отличие от перевода пути в WINE). PID, IPC и UTS используются для создания контейнер для системы Дарвина внутри.

Фреймворки и системные библиотеки в Darling в максимальной степени основаны на исходный код выпущен Apple. Переход на Mach-O позволяет упростить создание этих фреймворков, поскольку теперь они построены в формате Mach-O, для которого они были предназначены.[8] Чтобы заполнить пробелы во многих фреймворках более высокого уровня, таких как Какао, Дарлинг использует код Cocotron, ApportableFoundation, и GNUstep.[11]

Рекомендации

  1. ^ https://github.com/darlinghq/darling/blob/master/LICENSE
  2. ^ Бродкин, Джон (6 августа 2013 г.). «Приложения OS X работают в GNU / Linux с эмулятором Wine для Mac». Ars Technica. Получено 23 января 2014.
  3. ^ Линч, Джим. «Сможем ли мы когда-нибудь запускать приложения OS X в Linux с помощью Darling?». InfoWorld. Получено 2018-07-23.
  4. ^ "Статус проекта". Любимый проект. Получено 23 января 2014.
  5. ^ «Project Darling все еще пытается запустить программное обеспечение macOS / OSX в Linux - Phoronix». www.phoronix.com. Получено 2018-07-23.
  6. ^ "C ++ Hello World и обнесенный розовым золотом сад судьбы". Хакерский полдень. 2018-01-29. Получено 2018-07-23.
  7. ^ Хит, Ник (15 июля 2013 г.). «Приложения OS X на пути к Linux благодаря проекту Darling». ZDNet. Получено 23 января 2014.
  8. ^ а б Бугаев Сергей. "Уловки связывания и загрузки Mach-O". Получено 12 января 2020.
  9. ^ «Инструкции по сборке». дорогой. Дарлинг использует модуль ядра для предоставления определенных функций OS X, в основном Mach Ports IPC. Ни одно приложение OS X не может быть запущено без этого модуля, поскольку Libc требует портов Mach для своей инициализации и даже для очень простых вещей, таких как sleep ().
  10. ^ «Проблема: код Apple под лицензией APSL несовместим с лицензией GPL». GitHub. Получено 12 января 2020.
  11. ^ "Часто задаваемые вопросы о главной странице". Любимый проект. Получено 12 января 2019.