Een ontwikkelaar is een opensource-project gestart in een poging OS X-applicaties op Linux te laten draaien. De eerste OS X-software zou inmiddels door The Darling Project worden ondersteund waarbij gebruik wordt gemaakt van een Darwin-emulatielaag.
De Darling-emulatielaag, die is geschreven in C++11 en Objective-C, functioneert volgens de ontwikkelaar in grote lijnen hetzelfde als Wine, de Windows-emulator voor Linux-besturingssystemen. OS X-binaries worden doorgestuurd naar de Darwin-kernel waarna de code wordt gestart. Om de software succesvol te kunnen draaien, zijn er echter ook koppelingen aangebracht naar de zogenaamde abi-compatibele libraries en frameworks die door OS X-software worden gebruikt. Ook is aan Darling code toegevoegd om programma's die in Objective-C zijn geschreven, goed te laten draaien door ondersteuning voor de bijbehorende Cocoa-bibliotheken.
De Darling-emulator is momenteel in staat om enkele eenvoudige OS X-applicaties te draaien binnen Linux. Daarvoor wordt gebruik gemaakt van een zogenaamde Mach-O-loader om de OS X-binaries in te kunnen lezen, een runtime transition layer voor Apple Objective C en een Darwin-emulatielaag.
Hoewel de huidige vroege versie van Darling nog geen iOS-code kan emuleren, zou het theoretisch mogelijk zijn om iOS-applicaties in Linux te draaien. Daarvoor dienen echter wel extra libraries aan Darling te worden toegevoegd en bovendien moet de emulatielaag geschikt worden gemaakt voor de ARM-architectuur.
Momenteel heeft de ontwikkelaar en student Luboš Doležel geen concrete plannen om iOS-emulatie aan Darling toe te gaan voegen omdat in zijn ogen Android momenteel 'de markt domineert'. Verder meldt Doležel dat zijn project uitsluitend gebruik maakt van opensource-code en zijn emulator dus geen copyrights van Apple schendt.
/u/172017/ibiza_2014-square-60x60.png?f=community)
:strip_icc():strip_exif()/u/235429/crop5ec389b86a87b_cropped.jpeg?f=community)
/u/466919/Tweakers_p9_v2.png?f=community)
/u/113601/crop5e3f183d640f8_cropped.png?f=community)
:strip_icc():strip_exif()/u/1100/crop5a1c5df8066e1_cropped.jpeg?f=community)
:strip_icc():strip_exif()/u/49579/sadnemo3b.jpg?f=community)
/u/155722/Looneytunes.png?f=community)
:strip_icc():strip_exif()/u/168551/crop5cc9f0696f0a5_cropped.jpeg?f=community)