August 01, 2013, 10:38 AM — Run OS X Applications in Linux with Darling
There's a neat new project devoted to running OS X applications in Linux. It's called Darling, and it reminds me of Wine. Wine, as you probably already know, lets Linux users run Windows applications.
How does Darling work? Here's how:
Darling works in a way very similar to Wine.
It parses executable files for the Darwin kernel (Mach Object Files; Mach-O), loads them into the memory (just like ld-linux.so does with ELF executables) and executes them. That is indeed not sufficient. Darling needs to provide ABI-compatibile set of libraries and frameworks as available on OS X.
This is done by either
directly mapping functions to those available on Linux, or
wrapping native functions to bridge the ABI incompatibility, or
providing a reimplementation on top of other native APIs.
Special focus is aimed at the Objective-C runtime. Upon loading an Objective-C executable, Darling locates all Objective-C metadata and through its translation layers, it registers everything with the GNUstep libobjc2 runtime.
While Darling seems like a cool project, I'm somewhat lukewarm on running OS X applications in Linux. Are there a lot of people out there who would want to do this? I can understand Wine, as there are tons of Windows applications that some Linux users might want, but I don't see the same thing applying to OS X apps.
Yes, there are some great OS X applications, but you never hear Linux users swooning for any of them and asking for a way to run them on their computers. So who is really going to use Darling to run OS X applications in Linux? I really don't know.
Tell me in the comments if you'd run OS X apps on your Linux computer. I'm very interested in reading people's thoughts about this possibility.
Fancy running iWork on Linux? It may one day be possible courtesy of a project to get Apple OS X programs running on Linux-based operating systems.
Similar to how Wine allows Windows applications to run in Linux OS, the Darling project is trying to build a software compatibility layer to run OS X apps.
Leadwerks Game Development for Linux
Leadwerks, a game engine company, might be bringing its game development environment to Linux. There's a Kickstarter campaign that seems to have already met its goal, and I think this bodes well for Linux gamers.