Slashdot Mirror


Run Mac OS X Apps On Linux?

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?

4 of 497 comments (clear)

  1. Cocoa and Carbon by morgan_greywolf · · Score: 5, Insightful

    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.

    1. Re:Cocoa and Carbon by morgan_greywolf · · Score: 5, Insightful

      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.
  2. You Answered Your Own Question by organgtool · · Score: 5, Insightful

    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?
  3. Why not? by grammar+fascist · · Score: 5, Insightful

    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 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.
    --
    I got my Linux laptop at System76.