Darling: Run Apple OS X Binaries On Linux
An anonymous reader writes "After having Wine to run Windows binaries on Linux, there is now the Darling Project that allows users to run unmodified Apple OS X binaries on Linux. The project builds upon GNUstep and has built the various frameworks/libraries to be binary compatible with OSX/Darwin. The project is still being worked on as part of an academic thesis but is already running basic OS X programs."
Given that iOS began as a stripped-down fork of Mac OS X, Darling could mean eventually running the entire contents of Cydia on Android devices in addition to the jailbroken iTrinkets that it currently runs on.
Is there anything worth running?
Well the Xcode development environment is Mac OS X specific and unlikely to be ported to any other platform.
There's Mac-on-Linux for that, last updated in 2007:
http://en.wikipedia.org/wiki/Mac-on-Linux
This is nifty in all, but all their example application is doing is literally the graphical equivalent of "hello world".
GNUStep still only implements maybe 30% of the Apple APIs out there. And they still don't do them 100% the same way- see NSDecimalNumber for reference (Apple has a really stupid whacked way of doing it, GNUStep's implementation is slightly more sane- but they still shouldn't be straying from what Apple does if they want a compatible API in the end). Things like Core Animation, Core Graphics, Core Image, etc... Forget about it. The GNUStep guys have barely even bothered to look at that stuff, let alone implementing it.
Sadly, there is a lot more to a modern day Macintosh application then your standard NS/CF classes (even though Core Foundation is kinda opensource). You're not going to see Tweetbot or Cornerstone or Coda 2 running on anything other then OS X for a very, very long time. iOS might be a bit different since the majority of UIKit is very well understood (and there are various other APIs out there designed to re-implement it), so basic iOS applications could probably run with little effort- but for anything using APIs outside of UIKit (again, Core Animation, Core Graphics, Core Audio, Core MIDI, so on and so forth)- nobody has really spent any time on understanding how those work and re-implementing them elsewhere, and a lot of apps hook into this stuff to give you the nifty iOS experience that other handhelds can't.
In other words, the biggest barrier to this project isn't running OS X binaries on Linux. That's easy. It's implementing the other 70% of the stuff that nobody has even remotely begun to poke at. The OS X API library is vast and expansive, and GNUStep has done a good job replicating what we had on NeXTSTEP in the 1990s- but they've got absolutely none of the modern OS X stuff.
(I am the author of Darling.) And you're correct. Supporting PPC is on my TODO list and will not be that difficult I'll just have to port the few assembly routines.
I'm not saying that's the issue both both applications you mentioned use GTK so maybe that's one reason why it works but may not work in other cases.
And GNU/Linux isn't all GTK.
"All GTK" may be sufficient to make cut/copy/paste work between applications, but it's not necessary. I just did a quick Wireshark build (to get a GTK+ application) on my Fedora-16-with-KDE-4 (virtual) machine, and was able to cut with ^X or copy with ^C from the Wireshark filter text box and paste with ^V into the app launcher Search text box and KWord, and cut or copy from either of the latter and paste it into the Wireshark filter text box.
So it works at least between those versions of GTK+ 2.x and Qt 4.x. There's no guarantee it will work between toolkits A and B for arbitrary values of A and B, but if a toolkit implements cut/copy/paste as per the freedesktop.org clipboard consensus - as that page notes, Qt and GTK+ both do - cut/copy/paste should work between applications using that toolkit and other applications using that toolkit and other toolkits that implement cut/copy/paste as per that consensus. (According to the page on that consensus, Qt 2 and GNU Emacs 20 didn't implement cut/copy/paste as per that consensus, but Qt 3 and GNU Emacs 21 would.)
None of that, BTW, gets rid of paste-current-selection, i.e. the action usually bound to the middle mouse button on many UN*X GUIs.
(Note, BTW, that the X11 term "selection" doesn't necessarily mean "what you've selected in the application"; that's the PRIMARY selection, but there's also the CLIPBOARD selection, which is whatever you've cut or copied, and the SECONDARY selection, which is probably unused unless you're using an XView application.)
Wine is working great these days. Steam, video games and even Netflix.
Enjoy your one frame per second!
I believe in proper ports, using cross-platform tools. In fact with Windows is becoming just another platform. Its simply less of an issue, but to suggest Wine is slower when its often faster is really strange.
http://wiki.winehq.org/Debunking_Wine_Myths
I've given you a link to show how misinformed you are. I suggest you spend a little time getting informed
OSX is Darwin (A MACH micro kernel) with a BSD user land + OpenStep + a fuckton of proprietary Apple stuff. Nothing Linux about it.
You do know that Linux is just a kernel right? Son, these days Solars has more in common with Linux than OSX does.
XML is a known as a key material required to create SMD: Software of Mass Destruction