Darling (Linux)
| Darling | |
|---|---|
| | |
| Простое Cocoa-приложение 'HelloWorld', продемонстрированное на macOS (слева) и Linux (справа) | |
| Тип | слой совместимости |
| Автор | Любош Долежал |
| Написана на | Си, C++, Objective-C[1] и язык ассемблера |
| Операционная система | Linux |
| Дата выпуска | 2012 |
| Последняя версия | |
| Тестовая версия | 0.1.20251023 (23 октября 2025) |
| Репозиторий | github.com/darlinghq/darling |
| Лицензия | Различные, в основном GPLv3 |
| Сайт | darlinghq.org |
Darling — это свободный и открытый слой совместимости с macOS для Linux.[3] Он дублирует функции macOS, реализуя функционал через альтернативные реализации библиотек и фреймворков, при вызове из программ macOS.[4] Этот метод отличается от прямой эмуляции,[5] где программы запускаются в программной среде Apple в виртуальной машине.[6] Darling называют аналогом Wine для macOS.[7]
Проект стартовал летом 2012 года и основывается на предыдущем проекте под названием maloader, который был прекращен из-за нехватки времени. Слой показал свою работоспособность со многими консольными приложениями, такими как Midnight Commander, The Unarchiver, Python и т. д., он также имеет базовую поддержку графических приложений, основанных на фреймворке Cocoa.[8][3] Darling имеет возможность извлекать образы дисков Apple.[9]
Архитектура
[править | править код]На входе в систему Darling находится загрузчик для бинарных файлов Mach-O, исполняемого формата для операционных систем Apple. Предшественник Darling, maloader, представлял максималистский подход к проблеме, пытаясь воспроизвести все, что делает загрузчик динамических библиотек Apple dyld. Это оказалось сложным, и с «перехода на Mach-O» в 2017 году Darling использует легковесный загрузчик, достаточный для запуска открытого исходного кода Apple dyld.[11]
Для обеспечения бинарных файлов macOS вызовами ядра, Darling использует модифицированное ядро XNU (с лицензией APSL), обернутое в модуль ядра Linux с лицензией GPL. Модуль выполняет типичную работу ядра Mach, в основном обработку IPC портов.[12] Есть некоторые проблемы с лицензированием в модуле darling-mach, поскольку команда добавляет GNU GPL модификации к ядру APSL.[13]
Над ядром находится корневое окружение. Darling, как и Wine, поддерживает префиксы chroot, реализованные с использованием Linux overlayfs[англ.] (в отличие от трансляции путей в WINE). Пространства имен PID, IPC и UTS используются для создания контейнера для системы Darwin внутри.
Фреймворки и системные библиотеки в Darling, насколько это возможно, основаны на исходном коде, выпущенном Apple. Переход на Mach-O позволяет легче создавать эти фреймворки, потому что теперь они создаются в формате Mach-O, для которого они были предназначены.[11] Чтобы заполнить пробелы для многих высокоуровневых фреймворков, таких как Cocoa, Darling использует код из Cocotron, ApportableFoundation[англ.] и GNUstep.[3]
Лицензия
[править | править код]Большая система Darling основана на многих внешних компонентах, которые используют различные лицензии, все из которых являются открытыми. Основная лицензия — GPLv3.[14]
Примечания
[править | править код]- ↑ https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv — 2025.
- ↑ https://github.com/darlinghq/darling/releases/tag/v0.1.20220704
- 1 2 3 Darling |. www.darlinghq.org. Дата обращения: 17 июня 2022. Архивировано 16 июня 2022 года.
- ↑ You Can Now Use 'Darling' to Run macOS Software on Linux | iPhone in Canada Blog (амер. англ.) (5 октября 2020). Дата обращения: 17 июня 2022. Архивировано 17 июня 2022 года.
- ↑ González, Diego Germán. MacOS programs on Linux? With Darling it is possible. (англ.). Linux Adictos (31 октября 2021). Дата обращения: 17 июня 2022. Архивировано 26 мая 2022 года.
- ↑ Brodkin, Jon. OS X apps run on Linux with Wine-like emulator for Mac software. Ars Technica (6 августа 2013). Дата обращения: 23 января 2014. Архивировано 6 августа 2019 года.
- ↑ Lynch, Jim. Will we ever be able to run OS X apps in Linux with Darling?. InfoWorld (англ.). Архивировано 23 июля 2018. Дата обращения: 23 июля 2018.
- ↑ Darling Picks Up New Contributors For Its macOS Compatibility Layer On Linux (англ.). www.phoronix.com. Дата обращения: 17 июня 2022. Архивировано 17 июня 2022 года.
- ↑ Installing software - Darling Docs. docs.darlinghq.org. Дата обращения: 27 января 2022. Архивировано 27 января 2022 года.
- ↑ Heath, Nick. OS X apps on their way to Linux courtesy of Darling project. ZDNet (15 июля 2013). Дата обращения: 23 января 2014. Архивировано 9 января 2015 года.
- 1 2 Bugaev, Sergey. Mach-O linking and loading tricks (24 июля 2018). Дата обращения: 12 января 2020. Архивировано 12 января 2020 года.
- ↑ Build Instructions. Darling. — «Darling uses a kernel module to provide certain OS X specific features, mainly Mach Ports IPC. No OS X application can be run without this module, since Libc requires Mach Ports for its initialization and even for very basic things such as sleep().» Дата обращения: 12 января 2020. Архивировано из оригинала 21 января 2020 года.
- ↑ Issue: Code from Apple under the APSL is incompatible with the GPL. GitHub. Дата обращения: 12 января 2020. Архивировано 7 октября 2020 года.
- ↑ Darling. GitHub (16 октября 2021). Дата обращения: 13 марта 2026. Архивировано 18 марта 2026 года.
Ссылки
[править | править код]- Программное обеспечение по алфавиту
- Программное обеспечение, разработанное в 2012 году
- Программное обеспечение, разработанное в 2013 году
- Слои совместимости
- Свободное программное обеспечение, написанное на Си
- Свободное системное программное обеспечение
- Эмуляторы для Linux
- Программное обеспечение с лицензией GNU GPL