如何在Mac OS X下运行Linux二进制文件?
谷歌搜索我发现了几个模拟器,但没有在Mac上运行Linux二进制文件.有很多关于在Linux上运行Mac OS X的帖子和那种东西 - 但这与我想做的相反.
更新:
感谢所有的答案!我完全了解MacPorts和Fink或任何其他事情; 不,我不想要任何这些实用程序,我不想要任何包管理器,我更喜欢自己编译.我也有Parallels,可以设置虚拟机和所有爵士乐......
我唯一想做的就是找到一种方法来运行我没有源代码的二进制文件,并且已经为Linux编译了,但我不想在Linux下运行它,但在Mac OS X下运行它.所以我的关于模拟器的问题.
那么有一个项目将类似Linux的binfmt_misc引入OS X,所以现在你需要的是一个ELF加载器,一个可以加载Mach-O和ELF的动态链接器,以及一些将Linux调用转换为OS X的机制.
只是为了灵感,您可以以忽略文件扩展名的方式实现动态链接器 - 可以加载libfoo.so.1(作为Linux ELF)和libfoo.1.dylib(作为Mach-O)以便操作系统X版本的系统库可以重复使用,因此您不需要编写"托管在OS X上"libc.so和syscalls可以通过kext处理,该kext将Linux调用转换为内核中的OS X调用.
或者,以更优雅的方式,将精简的Linux内核实现为kext,使OS X内核成为双重用途.但是,这将要求您使用两组库.(二进制文件没有冲突所以它基本上没问题)
设置虚拟机(我个人使用VMWare Fusion),然后在虚拟机上安装所需的Linux发行版.
或者,如果您拥有Linux程序的源代码,那么您可以在Mac上重新编译它并以原生方式运行它.如果您安装Fink或MacPorts,您可以安装很多开源程序而不会有太多麻烦.
我最近发现了Noah,您可以使用它在macOS上运行Linux二进制文件。您可以通过自制软件(brew install linux-noah/noah/noah
)安装Noah 。然后,您应该可以执行以下操作:
noah linux_binary
以我的经验,二进制文件的行为与我在Ubuntu计算机上看到的行为相匹配。