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