В рамках проекта Darling (http://darling.dolezel.info/en/Darling) началось развитие системы для обеспечения запуска в Linux немодифицированных исполняемых файлов, собранных для Mac OS X. Проектом также намечено развитие инструментов для установки в Linux пакетов программ, оформленных для Mac OS X. Созданные наработки распространяются (http://git.dolezel.info/?p=darling.git;a=tree) под свободной лицензией GPLv3.
Несмотря на то, что проект находится на начальной стадии развития и носит в основном академический характер (дипломная работа студента), он уже позволяет выполнять некоторые консольные приложения, собранные для для Mac OS X. Например, протестирован запуск gcc-4.2, otool, nm, clang и других утилит. Поддерживается запуск как 32- так и 64-разрядных исполняемых файлов в формате Mach-O (http://ru.wikipedia.org/wiki/Mach-O). У создателя проекта в настоящее время нет цели (http://shinh.skr.jp/slide/ldmac/000.html) по обеспечению запуска любых программ, его область интересов пока ограничена только обеспечением выполнения инструментов, используемых для разработки приложений.
В настоящее время проект завязан на многих особенностях Linux, но не исключается его дальнейшее портирование для BSD-систем. Пока поддерживается запуск приложений для Mac OS X. Для поддержки запуска мобильных приложений, собранных для iOS, требуются дополнительные усилия по задействованию некоторых специфичных для iOS фреймворков и портированию ассемблерного кода для архитектуры ARM.
Организация выполнения программ в целом напоминает подход проекта Wine - производится разбор исполняемого файла, его загрузка в память и передача выполнения. Для работы приложений предоставляется совместимая на уровне ABI прослойка из библиотек, используемых в Mac OS X. Часть функций подобных библиотек реализуется путем прямого маппинга или трансляции через враппер в аналогичные функции, доступные в Linux. Для некоторых функций приходится создавать отдельные реализации, работающие поверх других нативных API.
В частности, в Darling задействованы наработки проекта GNUstep (http://www.gnustep.org/), в рамках которого развивается открытая реализация лежащего в основе Mac OS X и iOS программного интерфейса Cocoa (http://ru.wikipedia.org/wiki/Cocoa), включая AppKit, базовые и runtime-библиотеки Objective-C, наборы виджетов и сопутствующие приложения. Кроме того, в Darling используются доступные открытые библиотеки и фреймворки (http://git.dolezel.info/?p=darling.git;a=tree;f=src;hb=HEAD), позволяющие обеспечить бинарную совместимость с Darwin и Mac OS X (например, системная библиотека libSystem, развиваемая проектом Darwin), а также заголовочные файлы с сайта Apple (http://www.opensource.apple.com/release/mac-os-x-1064/).
URL: http://www.phoronix.com/scan.php?page=news_item&px=MTI0Njc
Новость: https://www.opennet.ru/opennews/art.shtml?num=35547