在Mac OS X下仿真Linux二进制文件

如何在Mac OS X下运行Linux二进制文件?

谷歌search我发现了几个模拟器,但没有一个在Mac上运行Linux二进制文件。 在Linux上运行Mac OS X有很多相关的东西,但这与我想要做的是相反的。

更新:

感谢所有的答案! 我完全了解MacPorts和Fink或任何其他的东西; 不,我不想要这些工具中的任何一个,而且我也不想要任何包pipe理者,所以我更愿意自己编写一些东西。 我也有Parallels,可以设置虚拟机和爵士乐…

我唯一想做的就是find一种方法来运行一个二进制文件,我没有源代码并且已经为Linux编译,但是我不想在Linux下运行它,但是在Mac OS X下。关于模拟器的问题。

Solutions Collecting From Web of "在Mac OS X下仿真Linux二进制文件"

设置一个虚拟机(我个人使用VMWare Fusion),然后在虚拟机上安装你想要的任何Linux发行版。

或者,如果您有Linux程序的源代码,则可以在Mac上重新编译并在本地运行。 如果你安装了Fink或者MacPorts ,你可以安装很多开源程序而不用麻烦。

那么有一个项目向OS X引入了一些像Linux的binfmt_misc,所以现在你需要的是一个ELF加载器,一个可以加载Mach-O和ELF的动态链接器,以及一些将Linux调用转换为OS X的机制。

仅仅为了获得灵感,您可以以忽略文件扩展名的方式实现动态链接器 – 可以加载libfoo.so.1(作为Linux ELF)和libfoo.1.dylib(作为Mach-O),以便OS系统库的X版本可以重复使用,这样就不需要编写“托管在OS X上”libc.so,系统调用可以通过kext来处理,kext将Linux调用转换为内核中的OS X。

或者,以一种更优雅的方式,将精简的Linux内核作为一个kext文件来实现,使得OS X内核成为一个双重用途。 但是,这将需要您使用两套库。 (二进制文件不冲突,所以很大程度上没问题)

在使用Qemu的用户空间模拟器的 Mac OS X下运行Linux可执行文件可能会有一些好运

如果你决定去虚拟化的路线,也可以考虑VirtualBox 。

另外,如果你只需要UNIX这样的命令行工具,就有MacPorts项目。 这基本上是我如何在我的mac上设置git :在安装MacPorts之后,您只需运行sudo port install git命令即可在您的系统上安装git

我最近发现了Noah ,你可以用它在macOS上运行Linux二进制文件。 你可以通过自制软件安装Noah( brew install linux-noah/noah/noah )。 那么你应该可以做到这一点:

 noah linux_binary 

根据我的经验,二进制的行为与我在Ubuntu机器上看到的一致。