Run Mac OS X Apps On Linux? 497
I have the urge to commit my 24" Core 2 Duo iMac to a single Linux operating system, thus giving up the goodness of my beloved Mac OS X. I am not a stranger to Linux, but I am a stranger to running Mac apps on Linux. On my PowerPC I can use SheepShaver to run Classic apps. The Mac-on-Linux project can run OS X apps, but it requires a PowerPC, not an x86. Virtualizing and emulating are inefficient, especially given the wonderful results the WINE project has had in getting Windows apps to run on Linux. What I would like is an equivalent: a software compatibility layer that will allow Linux to run Mac OS X apps at native performance. I believe there is some additional complexity in accomplishing this. Mac OS X apps aren't just Mac OS X apps. They are Carbon. They are Cocoa. They are universal binaries. They are PPC code with Altivec. Does such a project exist yet? If not, why not?
Cocoa and Carbon (Score:5, Insightful)
Wine has taken years to get as far as it has. I suspect that an 'OS X Wine' would take as long.
Simple reasons for this. (Score:4, Insightful)
The second reason would be that the people who might work on it are already too busy trying to do the same thing for Windows applications, and unfortunately that has a long way to go as well.
10 years (Score:5, Insightful)
I can guarantee you it would take at least that long to reverse-engineer Carbon from scratch. However, Cocoa is really nothing more than OPENSTEP v2. Linux already has an OPENSTEP implementation (GNUStep), so a portion of the work is done.
iTunes (Score:4, Insightful)
This will probably not happen in the near future, though. I think Apple is afraid that a linux port would get reverse-engineered and their DRM would be cracked in a week. But with their apparent success in locking down the iPhone, I find that unlikely.
Purpose. (Score:4, Insightful)
Why?
It seems sort of silly to deliberately kneecap yourself like this. Generally, you only see this behavior in serious FLOSS zealots. They're the ones not trying to run closed-source Mac OS X applications.
--saint
Resist the Urge (Score:3, Insightful)
You Answered Your Own Question (Score:5, Insightful)
Why? (Score:5, Insightful)
What do you hope to gain by installing Linux as the full-time OS? Please don't flame me, I'd like some logical points, or even a "just because".
You can't (Score:5, Insightful)
You're trying to do something stupid here: a Mac is only good as Apple sold it to you. They've went to thoroughly extensive work to ensure it is so, trying to get something production ready with OSX apps under Linux is begging for problems.
You bought a Mac, use OSX (you can dual boot still, or virtualize).
Why not? (Score:5, Insightful)
It's a fair bet the real answer is one or all of those.
Use VMWare or similar (Score:3, Insightful)
is your best bet right now. I am not sure if OS X can be properly virtualized, since it seems to check whether you are running it on Apple hardware - of course, if you are going to use an iMac, then you are indeed using Apple hardware, but it doesn't seem so to the OS. You'd need to use a hacked version I guess - oh the irony!
If you asked me, I would advise the contrary: run Linux in a virtual environment under OS X. Less trouble to get it running, no need to use hacked versions, and there is a good possibility that features such as Coherence from Parallels or the equivalent in VMWare Fusion might be available for Linux guests someday.
Re:also (Score:5, Insightful)
Funnily enough (Score:5, Insightful)
In short, you aren't going to gain anything by running Linux, except some nebulous feeling of self-satisfaction about something or other, and you are going to lose an awful lot. Running Windows on a Mac makes the Baby Jesus cry; running Linux exclusively gives him slight heartburn.
Re:Cocoa and Carbon (Score:5, Insightful)
Correct. I'm operating under the assumption that Cocoa and Carbon use Unix APIs at some level, since they sit on top of a Unix core. So as Wine is an implementation of the Win32 API, the Win32 API is just a fairly low-level API that lets you make windows and buttons and pull-down menus, access the filesystem, access task and memory management, etc., but if you want any of the niceties of newer Windows applications, like toolbars, reconfigurable menus, fancy controls, Windows media, etc., you need Windows/Microsoft DLLs that aren't a core part of the Win32 API proper. Sure, Wine provides open source implementations of some of these, but in most cases you need them provided from the application or from a copy of Windows. The analogy is not quite the same, with Cocoa and Carbon, but I think you get my point.
Market Share (Score:5, Insightful)
The real reason that these companies exist, is that there isn't THAT much of a demand for Mac apps on Linux. There is a large demand for Windows apps on Linux because there are so many Windows developers and subsequently applications that run on Windows. That's why we have WINE.
It would be possible I guess to do Carbon and Cocoa on Linux, re-implement the APIs, but for the amount of applications that there are on Mac that aren't on Windows, there isn't much point.
If Apple opensourced Carbon and Cocoa (Not likely) then I guess they would get ported to Linux by someone, but till then, someone isn't going to do this as the amount of developers out there just isn't high enough. There isn't the interest.
Re:Cocoa and Carbon (Score:4, Insightful)
Quit with your trollish BS already Anonymous - I really wish you'd get a job and stop posting what seems like thousands of comments a day on
Re:Resist the Urge (Score:2, Insightful)
Take the linux apps you love. Build them on the mac. Minor fixes may be needed, far less than recreating OS X on Linux. Use any number of the guides to slim down OS X to the bare minimum foot print. Enjoy your Linux-lite experience on your nice iMac and get all the benefits of optimized drivers for the hardware. Set your environment up so that at login it all starts automatically. Enjoy. I recommend Fink for ease of getting apps to your Mac
Thoughts (Score:5, Insightful)
- The Officially Sanctioned API (TM) for OS X apps is Cocoa. This is basically an extension of OpenStep. So is GNUStep [gnustep.org]. GNUStep even aims to implement Cocoa's extensions so as to allow Cocoa apps to be linked with GNUStep. However, for the time being, compatibility is incomplete and only at the source level. You might have some luck compiling GNUStep apps on Cocoa/OSX, but not running compiled Cocoa apps on GNUStep/Linux.
- Some people tried to get Darwin binary compatibiltiy into NetBSD [netbsd.org]. However, the project is now dead [hcpnet.free.fr], purportedly due to lack of user interest. This is the only Darwin binary compatibility project I am aware of. What this means is that, at the moment, you can only run Darwin (AKA OS X) executables on Darwin.
- QEMU [bellard.free.fr] is a fast and open source emulator that can be used to emulate, among others, x86 PCs, AMD64 PCs, and Power Macs. This should allow you to run OS X as a guest OS. If you use QEMU to emulate an x86 on an x86, or an x86 or AMD64 on AMD64, it should run close to native speed. That is, as far as the CPU is concerned. Other hardware, graphics hardware in particular, will not have native performance.
- I've been a GNU/Linux user for over ten years. I also used Mac OS X for a couple of years. Eventually, I got frustrated with it and installed Linux on my iBook. I've never looked back. Of course, I am primarily a GNU/Linux and BSD user, which causes the little (sometimes significant) oddities of OS X to frustrate me. If you're primarily an OS X user, this will likely work the other way around.
- GNU/Linux does have some definite advantages over OS X. Just throwing down a few: more customizability, easier maintenance (given a decent package manager, such as apt-get), better compatibility with open-source software, and several possible advantages that depend on your choices: lower memory usage, lower latency, lower disk usage.
- Given that you have a Mac, OS X also has some advantages over GNU/Linux. Among others: it supports your hardware (what you get from Apple, anyway; Linux has the edge when it comes to third-party hardware), companies are more likely to support it (think software, hardware, and manuals), and
- As for why there is no compatibility layer yet: probably just because it's a monumental task. Think about how old Wine [winehq.com] is and how well it works. Then think about Apple's yearly OS upgrades. Then consider that Apple has also moved architectures (PPC -> x86) since the introduction of OS X, and probably will again (x86 -> AMD64 - they ship that hardware, but the OS is still at least mostly x86). Then look at GNUStep and the instructions for building it (you're allowed to shiver at this point). A Mac OS X compatibility layer won't happen anytime soon.
Re:Huh? (Score:2, Insightful)
And if he was so concerned about "community, liberty, and rights", why did he buy a $2000 proprietary machine just to run open source on it?
If not, why not? (Score:5, Insightful)
Because it's a terrible, terrible idea. The Mac software stack is *large*, with API compatibility going back 20 years. 3 full-size APIs are supported (bsd, carbon, and cocoa), and they're all constantly being improved by apple. Any such project, while also being an absurd waste of time, could never catch up. Not to mention all the GPU stuff they're doing these days, integrated into the window server (Quartz Extreme, CoreAnimation, etc.). Feel like extending X11 to get decent performance? I don't, and neither does anyone else.
You've already gone past the hurdle that keeps most from using Linux: buying a Mac. If you want all the linux software, just download port from http://www.macports.org/ [macports.org] and let it download prebuilt binaries of traditionally linux applications for your mac. The website is crap but the tool's good and the repository is active and well maintained. They run just like the linux side, only you don't have to start hating your life by using Linux as your desktop OS. Switching back from OS X to Linux is about as painful as shoving a screwdriver in your eye. There's no point.
Some corrections:
* Parallels/VMWare aren't emulating anything. They're using newish x86 instructions to let the system run 2 OS's simultaneously
* Ever consider recompiling? I mean, it's called open source for a reason.
Also, if you're gonna tinker, consider Solaris. It's free and Parallels supports it with nice X11 extensions for mouse sharing, etc. Also, it's BrandZ lets you run Linux binaries.
Re:Why not? (Score:1, Insightful)
Most people who buy a Mac are even less inclined to tinker than a typical Windows user, and therefore much less likely to switch to Linux.
I'm the opposite. Switched from over 5 years of running linux (Mandrake, Redhat, Gentoo, Ubuntu) over to a Mac. I've tinkered quite a bit on it to modify a few things I did not like, but the important part is that I often found documentation or other people wanting to do the same changes, and posted what they had to do - usually just using hidden preferences (kinda akin to about:config in firefox).
I'd say Mac users are just as likely to want to tinker with there computer, but the ratio of Mac vs. Windows users offsets this perception (i.e. many many many windows users stick to the minimum version of any given windows edition, use IE, and never change the default background)
Some rationales for an OSX-Linux 'switch'. (Score:3, Insightful)
He has also expressed [diveintomark.org] what has frustrated many, that Apple's love of closed formats can result in data-loss and/or data not being readable in future. Naturally he can run FOSS MTA's, clients and mailbox formats on OS/X but his point is that the Linux (as a platform) is concerned with open-formats right from the get-go without any fight, tweaking, hackery or worry about the OS itself dropping application support in future. Transparency and decentralisation actually come to be things you trust over time. For this reason if one cares for the longevity of their data - in the sense of future readability - Linux is the wiser choice over OS/X. In 8 years with Linux I haven't had to worry at all about the things he (and many others) complain about above even once.
There is great comfort to be found in the Linux community's commitment to/love of open-standards and transparency and this, as I understand it, is a very valid reason to justify a switch.
Re:Why not Linux apps in OSX? (Score:5, Insightful)
If Apple goes bankrupt, or drops it, then your left out in the cold.
Similarly if Apple don't move it in the directions you want, then your stuck. (think very cheap lowend hardware, or very tiny laptops)
I run Kismac, it's a very nice wireless sniffer similar to Kismet on Linux, but graphical and with good gps integration including downloadable maps. I would like to run this on a tablet or a PDA, but Apple don't make such devices, so i have to run Kismet instead (text based) and then import the data into a mapping program later.
Re:iTunes (Score:4, Insightful)
Re:Cocoa and Carbon (Score:3, Insightful)
That you want to run Windows software does not imply that you want to run Microsoft software. Thus, you are not undermining the business models of companies whose software you want to run. Or is the fact that their software only runs on Windows integral to their business models?
Re:Funny you should mention this... (Score:3, Insightful)
Well, Lamborghini did start out making tractors
http://en.wikipedia.org/wiki/Lamborghini [wikipedia.org]
Re:Cocoa and Carbon (Score:3, Insightful)
especially those undocumented ones that ms use to make office and similar look good on their own platform.
dont take me a troll for saying so. they are there, the wine devs can testify to it.
Re:iTunes (Score:3, Insightful)
Why? (Score:2, Insightful)
No, there's no way to do it, I can tell you that without even googling it, because it's such a stupid idea that no one with the ability to write such an emulator would ever do it. Wine exists to replace the worst part of the windows experience - the OS, while keeping the best part (compatible apps). You're paying extra for OS X (the nice thing about the mac experience) and then throwing it away. For what? To run Mac apps, which aren't compatible with what the rest of the world uses in the first place. Waste of money - just buy some generic hardware if you're going to run linux, and run wine if Linux apps aren't enough.
Re:Simple reasons for this. (Score:2, Insightful)
I've got to give the most weight to your second explanation. MS Windows has a heck of a lot more software than the Mac available for it so emulation for MS Windows is far more important. Also, MS Windows is more oriented towards a system where the more software, the merrier, as opposed to the Mac which is more oriented towards an integrated environment to make working with cameras, iPods, whatever-else, easier. Emulation could better take advantage of the MS Windows model than it could the Mac.
As for any Mac OS X project becoming popular with the Linux world, I don't think that's going to happen even if Apple promotes it, much less shuts it down. The hypothesis is that the Linux developer's perception of the commercial software world is MS Windows and their goal is to move closer to that. The evidence is that NeXT actually released the standards for what is now used by Apple for Mac OS X way before Microsoft released their standards for
If anything, Apple has actually helped the free software world move closer to what they do with GUIs, libraries and languages, not forbidden it. Looking at the free software projects out there, it is apparent, if not obvious, that the free software world has overwhelmingly chosen the Microsoft flavor of GUIs and libraries.
Re:Cocoa and Carbon (Score:2, Insightful)
Re:Cocoa and Carbon (Score:3, Insightful)
You're better off running Parallels and virtualizing Linux. Performance is actually quite good and besides, how much of a hit are you going to take going the other way around, "virtualizing" OS X applications to run under Linux?