stringtranslate.com

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

Darling — это бесплатный и открытый исходный код для обеспечения совместимости macOS с Linux. [1] Он дублирует функции macOS , предоставляя альтернативные реализации библиотек и фреймворков, которые вызывают программы macOS. [2] Этот метод дублирования отличается от других методов, которые также можно считать эмуляцией, [3] когда программы macOS запускаются на виртуальной машине . [4] Darling называют аналогом WINE для запуска приложений macOS. [5]

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

Целью проекта является поддержка приложений iOS в будущем. [8]

Архитектура

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

Чтобы предоставить двоичным файлам macOS ядро , Darling использует модифицированное ядро ​​XNU (с лицензией APSL), упакованное в модуль ядра Linux с лицензией GPL. [ требуется обновление ] Это не то же самое, что включение кода GPL в программное обеспечение APSL, и лицензия APSL позволяет выполнять ссылки из кода с другой лицензией (в данном случае GPL). Модуль обрабатывает типичную работу ядра Mach , в основном обработку портов IPC . [10] Некоторые проблемы с лицензированием существуют [ требуется ссылка ] в модуле darling-mach, поскольку команда добавляет модификации GNU GPL в ядро ​​APSL . [11] [ неудачная проверка ]

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

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

Лицензия

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

Внешние ссылки

Ссылки

  1. ^ abc "Darling |". www.darlinghq.org . Архивировано из оригинала 2022-06-16 . Получено 2022-06-17 .
  2. ^ «Теперь вы можете использовать „Darling“ для запуска программного обеспечения macOS на Linux | Блог iPhone в Канаде». 2020-10-05. Архивировано из оригинала 2022-06-17 . Получено 2022-06-17 .
  3. ^ Гонсалес, Диего Герман (2021-10-31). «Программы MacOS на Linux? С Darling это возможно». Linux Adictos . Получено 2022-06-17 .
  4. ^ Бродкин, Джон (6 августа 2013 г.). «Приложения OS X запускаются на Linux с помощью эмулятора Wine-like для программного обеспечения Mac». Ars Technica . Получено 23 января 2014 г.
  5. ^ Линч, Джим. «Сможем ли мы когда-нибудь запускать приложения OS X в Linux с помощью Darling?». InfoWorld . Получено 23 июля 2018 г.
  6. ^ "Darling Picks Up New Contributors For Its macOS Compatibility Layer On Linux". www.phoronix.com . Архивировано из оригинала 2022-06-17 . Получено 2022-06-17 .
  7. ^ "Установка программного обеспечения - Darling Docs". docs.darlinghq.org . Получено 2022-01-27 .
  8. Хит, Ник (15 июля 2013 г.). «Приложения OS X на пути к Linux благодаря проекту Darling». ZDNet . Получено 23 января 2014 г.
  9. ^ ab Бугаев, Сергей (24 июля 2018 г.). "Mach-O linking and load tricks" . Получено 12 января 2020 г. .
  10. ^ "Инструкции по сборке". Darling . Архивировано из оригинала 21.01.2020 . Получено 12.01.2020 . Darling использует модуль ядра для предоставления определенных функций OS X, в основном Mach Ports IPC. Ни одно приложение OS X не может быть запущено без этого модуля, поскольку Libc требует Mach Ports для своей инициализации и даже для таких базовых вещей, как sleep().
  11. ^ "Проблема: Код от Apple под лицензией APSL несовместим с GPL". GitHub . Получено 12 января 2020 г.
  12. ^ "Darling". GitHub . 16 октября 2021 г.