在Linux上运行Mac OS X应用程序


13

根据这篇维基百科文章

OS X是由Apple Inc.开发和销售的一系列基于Unix的图形界面操作系统。

所以我在想:

  • 有没有与Wine类似的应用程序,但可以运行Mac应用程序?

  • 是否可以Linux机器上运行Mac OS X应用程序?


2
唯一的方法是创建OS X VM(例如,使用kvmVirtualbox)。不幸的是,这样做会产生许可问题-Apple不希望您在非Apple硬件上运行其OS。我认为他们甚至不会再出售DVD上的OS X(您应该将Mac上的OS X随同他们告诉您,并通过Internet进行升级)。
cas

谢谢!安装之前我应该​​配置虚拟机吗?
0x0584

Answers:


17

Darling(链接)是一个旨在与葡萄酒类似的项目。但是,当前它仅运行某些命令行OSX程序。截至2019年中,它可以运行许多命令行程序,并且根据其主页看来已接近可以运行某些基本图形软件的地步。除非它是基于文本的,否则它可能不会立即运行您想要的。

只要OS X程序的开发人员发布了他们的源代码并使用了跨平台的库(例如QT,GTK,X11,GNUStep或WxWidgets),您就应该能够为Linux重新编译OS X程序。OS X和Linux在API级别比ABI级别更兼容。

GNUStep实现了NeXTStep和OS X的Cocoa API。当我尝试使用它时,它似乎可以完成,而在野外却很少使用它,这真是令人震惊的完成。GNUStep仅在源代码(API)级别上起作用,因此,如果程序是开源的并且使用Apple的Cocoa GUI(不是专有的“ Aqua”),它就可以工作。这取决于能否编译和链接代码。

将API或应用程序编程接口视为汽车仪表板之类的东西-汽车驾驶员可以看到所有东西,并且您可以进入其他人的汽车并找到他的其他仪表板,就像找出一样容易。

将ABI或应用程序二进制接口视为汽车的引擎-品牌和型号之间的差异可能很大,您可能无法很轻松地将Chevy引擎换成Volvo。

以此类推,Darling会将Chevy引擎放入沃尔沃的底盘中,而从源代码进行编译就像离开Chevy进入Volvo。从程序员的角度来看,一个比另一个要简单得多。

但是苹果公​​司拥有一些专有的用户界面库,而其他人也没有。如果开发人员使用了其中一种(例如Aqua),则您必须等待并希望Darling像Wine一样长大,或者自己移植。如果没有源代码发布,就好像引擎被制造得太大而无法容纳在沃尔沃的引擎舱中,或者被设计为连接到您的沃尔沃是后轮驱动的前轮驱动汽车一样。除非有人是一个绝对疯狂的疯子(以最好的方式),他有数月的空闲时间和可笑的奉献精神,否则这不可能发生。

此外,就可可API的覆盖范围而言,GNUStep并非100%完整,因此对于复杂的程序而言,仍可能需要进行一些修整工作。而且,GNUStep不提供与xcode等效的构建系统-也就是说,如果原始开发人员仅使用XCode IDE的“构建”系统,则可能需要为其编写makefile。这对我来说是最令人沮丧的部分,因为尽管我拥有编译和链接软件的经验,但很难将有用的信息以我以前没有经验的.xcodeproj这样的格式来获取。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.