Forgot your password?
typodupeerror
OS X Operating Systems Software User Journal Linux

Run Mac OS X Apps On Linux? 497

Posted by kdawson
from the must-be-a-layer-somewhere dept.
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?
This discussion has been archived. No new comments can be posted.

Run Mac OS X Apps On Linux?

Comments Filter:
  • Cocoa and Carbon (Score:5, Insightful)

    by morgan_greywolf (835522) on Monday July 30, 2007 @08:38AM (#20041075) Homepage Journal
    Duh. The Cocoa and Carbon libraries aren't open source. Wine doesn't really emulate Windows libraries, it runs them directly. I suppose there might be some way of getting Carbon and Cocoa onto Linux, but I'm guessing that it's no easy task. And even then, you'd be subject to the same thing you are in Windows -- undocumented APIs, less-than-fully documented APIs, etc.

    Wine has taken years to get as far as it has. I suspect that an 'OS X Wine' would take as long.
  • by Anonymous Coward on Monday July 30, 2007 @08:42AM (#20041117)
    Apple isn't going to allow it to happen. It's very important that Mac OS be seen as part of the Mac -experience-, not something that you can install on any computer. Trust me, they would find some grounds upon which to shut down such a project if it ever became popular.

    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)

    by Constantine XVI (880691) <trash...eighty+slashdot@@@gmail...com> on Monday July 30, 2007 @08:43AM (#20041141)
    Wine took ten years to get where it is now, without any real documentation whatsoever.

    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)

    by egandalf (1051424) on Monday July 30, 2007 @08:45AM (#20041163)
    All I want is iTunes compatibility. Sure, I can sync my ipod with Amarok or RythmBox, but I haven't found anything that works well for syncing video and I can't purchase music from the store. The kicker is, I would probably purchase LOTS more music if I had a solid linux port.

    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)

    by saintlupus (227599) on Monday July 30, 2007 @08:46AM (#20041173) Homepage
    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.

    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)

    by DrDitto (962751) on Monday July 30, 2007 @08:46AM (#20041181)
    Why would you want to replace OS/X with Linux? Thats like replacing a shiny new Mercedez-Benz with a rebuilt Chevy.
  • by organgtool (966989) on Monday July 30, 2007 @08:47AM (#20041193)

    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?
    I think you answered your own question. Mac apps are very complex due to all of the mechanisms they use to maintain backward compatibility. Reimplementing all of those libraries is a huge task. Wine exists as a reimplementation of Win32 and DirectX strictly out of necessity, but there is little need to run Mac apps in Linux. Most people who want to run Mac apps prefer to run them on Apple hardware. Seeing that you already own an iMac, I think the bigger question is why are you so insistent on running Linux on your Mac?
  • Why? (Score:5, Insightful)

    by jessecurry (820286) <jesse@jessecurry.net> on Monday July 30, 2007 @08:48AM (#20041207) Homepage Journal
    I just want to know why you would want to replace OS X with Linux? I understand the FOSS ideals, but you could always run linux in a virtual machine. I've installed Linux on quite a few of my Macs over the years, but since OS X I find that almost all of the linux functionality is sitting right in OS X.
    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)

    by suv4x4 (956391) on Monday July 30, 2007 @08:49AM (#20041211)
    There's no much motivation right now for "Mac Wine" since there isn't such a flood of Mac-only apps that are essential to Linux users.

    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)

    by grammar fascist (239789) on Monday July 30, 2007 @08:50AM (#20041227) Homepage

    Does such a project exist yet? If not, why not?

    • There's not much demand for it.
    • Most commercial Mac software exists in Windows, so you can run the Windows versions under WINE in Linux.
    • 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.
    • Every Apple computer extends the Steve Jobs reality distortion field [folklore.org] to the computer user, ensuring lifelong devotion to the product. I haven't a clue why it doesn't affect you this way.

    It's a fair bet the real answer is one or all of those.
  • by Wooky_linuxer (685371) on Monday July 30, 2007 @08:51AM (#20041255)

    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)

    by Trillan (597339) on Monday July 30, 2007 @09:00AM (#20041337) Homepage Journal
    Some of Apple's Mac OS X binaries are encrypted. However, if you're really talking about an open source clone, you have no business trying to use Apple's binaries.
  • Funnily enough (Score:5, Insightful)

    by simong (32944) on Monday July 30, 2007 @09:02AM (#20041365) Homepage
    I was just thinking about this coming back from lunch. OS X has become the pragmatic choice of many sysadmins simply because it is the best of both worlds: you get a GUI OS on (generally) reliable hardware that will run Microsoft Office (if you must) but also has a full command line interface that will run most Unix tools without any fiddling. Part of OS X's success is wholly due to this, and the Linux/FOSS community has responded by making the Linux front end more Mac-like with Compiz, Beryl and Etoile.
    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.
  • by morgan_greywolf (835522) on Monday July 30, 2007 @09:06AM (#20041427) Homepage Journal

    Wine is an open source implementation of the Windows API, though it can use Microsoft dlls if you supply them.


    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)

    by bernywork (57298) * <bstapletonNO@SPAMgmail.com> on Monday July 30, 2007 @09:17AM (#20041543) Journal
    I know this is really stating the obvious, but it comes down to this, market share. Windows has a large market share, and therefore has a large amount of developers building applications. There is also a lot of work done on WINE by CodeWeavers and Cedega, these are builds of WINE that are commecially supported for applications and gaming respectively. (Not to take anything away done by others on WINE, but these people are contributors as well)

    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.
  • by somersault (912633) on Monday July 30, 2007 @09:26AM (#20041627) Homepage Journal
    He obviously doesn't want to run their software, otherwise he wouldn't be asking for compatability layers in Linux to run other people's software without having to run a certain OS.

    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 /.... :o
  • Re:Resist the Urge (Score:2, Insightful)

    by Anonymous Coward on Monday July 30, 2007 @09:26AM (#20041633)
    Ummm... Run X11 (found in the Utility folder in the Applications folder). Run it in take over the screen mode. Or replace the window manager with your choice.
    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 ... They'll have most of what you want. I _know_ this does not answer the original question, but it is a more practical solution given the lack of actual requirements or desires for why Linux when Mac OS X is beloved by the original author...
  • Thoughts (Score:5, Insightful)

    by RAMMS+EIN (578166) on Monday July 30, 2007 @09:34AM (#20041735) Homepage Journal
    Some of my thoughts, in no particular order:

    - 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 ... well, can't think of anything more right now.

    - 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)

    by Cereal Box (4286) on Monday July 30, 2007 @09:39AM (#20041803)
    Seriously man, it's just software. It's not a way of life.

    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)

    by Lally Singh (3427) on Monday July 30, 2007 @09:46AM (#20041889) Journal

    If not, why not?


    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)

    by Anonymous Coward on Monday July 30, 2007 @10:09AM (#20042163)
    Hmmm.. gotta take issue with your option 3.
    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)
  • by delire (809063) on Monday July 30, 2007 @10:09AM (#20042173)
    People I know seem to have 'switched' for reasons that are perhaps most eloquently stated [diveintomark.org] by Dive Into Python author (and veteran Apple user) Mark Pilgrim:

    In many ways, the tale of my switch is more of the same old story. Mac OS X was "free enough" to keep me using something that was not in my long-term best interest. But as I stood in the Apple store last weekend and drooled over the beautiful, beautiful hardware, all I could think was how much work it would take to twiddle with the default settings, install third-party software, and hide all the commercial tie-ins so I could pretend I was in control of my own computer.
    So he went and bought an IBM machine.. and put Ubuntu on it.

    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.

    I'm not claiming that either Free Software or open formats are a silver bullet. There are many risk factors, and Free Software mitigates some of them some of the time. There are many layers -- data on top of applications on top of operating systems on top of hardware -- and open formats can reduce the friction between some of them some of the time. They're both lubricants that help you to slide out one layer and replace it without the whole thing toppling down. Apple would prefer that I not replace any of their layers, and they have gone out of their way to increase the friction between them.

    Which brings us back to John Gruber's oranges. His counter-argument -- that lock-in hasn't been a problem for me yet, so why all the fuss now -- could not be further from the truth. It's been a constant problem for 22 years. Much of the data I've spent my life creating has been lost or seriously degraded through a series of proprietary formats and forced migrations. This is why I felt so betrayed, in particular, by Mail.app "upgrading" me away from mbox format. It took a lot of forethought on my part, not to mention actual time and effort, to convert all my disparate mail archives from all those different mail programs. I finally got everything into a single archive in an open, stable format... and just 3 short years later, Apple found a way to screw me one last time. It'll be the last time they get the chance.
    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.
  • by Bert64 (520050) <bert AT slashdot DOT firenzee DOT com> on Monday July 30, 2007 @10:14AM (#20042243) Homepage
    Because currently you can only buy that Mac compatibility layer from one place.
    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)

    by croddy (659025) on Monday July 30, 2007 @10:43AM (#20042641)
    The Linux and OS X desktop user bases have been roughly the same size for several years now, although I believe the OS X user base has finally begun to slightly outnumber the Linux share. I think the argument you want to make here is that the technically-oriented and freedom-inclined Linux user base would be unlikely to purchase low-bitrate DRM'ed AAC files.
  • by init100 (915886) on Monday July 30, 2007 @10:53AM (#20042767)

    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?

  • by DaveCar (189300) on Monday July 30, 2007 @11:08AM (#20042945)

    Well, Lamborghini did start out making tractors ....

    http://en.wikipedia.org/wiki/Lamborghini [wikipedia.org]
  • by hitmark (640295) on Monday July 30, 2007 @11:34AM (#20043275) Journal
    and the devil is in those last 10%.

    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)

    by Hatta (162192) on Monday July 30, 2007 @11:39AM (#20043353) Journal
    How about not buying hardware that ties you to a specific platform for no reason? If you buy a product locked to proprietary software on specific operating systems, don't complain when it doesn't work anywhere else.
  • Why? (Score:2, Insightful)

    by slartibart (669913) on Monday July 30, 2007 @12:41PM (#20044291)

    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.

  • by General Lee's Peking (954826) on Monday July 30, 2007 @01:07PM (#20044671)
    Running Mac OS X software on Linux doesn't alter the Mac buyer's perception of the Mac experience because they've got a Mac OS X box, not a Linux box. And hopefully the average person running Linux will be sophisticated enough to understand that running Mac OS X software through emulation isn't the Mac experience either. I don't think Apple has any reason to care one way or the other.

    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 .Net and C#; NeXT developed the Objective-C front end for gcc which Apple still supports; and GNUStep is still far less popular than MS Windows flavored projects like Gnome and KDE. The free software world worked on its own C# front end for gcc even without Microsoft helping them out. And then there's Mono, DotGNU, and so on.

    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.
  • by omfgnosis (963606) on Monday July 30, 2007 @03:13PM (#20046563)
    It might be more prudent to provide Cocoa compatibility and forego Carbon based on the knowledge that the remaining Carbon apps are cross-platform and would likely work under Wine (eg Office, Photoshop) with the notable exception of the Finder, which nobody wants to emulate anyway.
  • by shmlco (594907) on Monday July 30, 2007 @04:00PM (#20047319) Homepage
    You guys need to get serious. It's not just Carbon and Cocoa, but Quartz and Quicktime and Core Audio and Bonjour and all of the other technologies OS X applications are based on.

    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?

Lisp Users: Due to the holiday next Monday, there will be no garbage collection.

Working...