在Mac OS X下模拟Linux二进制文件

flo*_*oux 27 linux binary macos emulation

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

谷歌搜索我发现了几个模拟器,但没有在Mac上运行Linux二进制文件.有很多关于在Linux上运行Mac OS X的帖子和那种东西 - 但这与我想做的相反.

更新:

感谢所有的答案!我完全了解MacPorts和Fink或任何其他事情; 不,我不想要任何这些实用程序,我不想要任何包管理器,我更喜欢自己编译.我也有Parallels,可以设置虚拟机和所有爵士乐......

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

Max*_*han 8

那么有一个项目将类似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内核成为双重用途.但是,这将要求您使用两组库.(二进制文件没有冲突所以它基本上没问题)

  • 你有这个链接吗? (2认同)

mip*_*adi 7

设置虚拟机(我个人使用VMWare Fusion),然后在虚拟机上安装所需的Linux发行版.

或者,如果您拥有Linux程序的源代码,那么您可以在Mac上重新编译它并以原生方式运行它.如果您安装FinkMacPorts,您可以安装很多开源程序而不会有太多麻烦.


snd*_*snd 5

我最近发现了Noah,您可以使用它在macOS上运行Linux二进制文件。您可以通过自制软件(brew install linux-noah/noah/noah)安装Noah 。然后,您应该可以执行以下操作:

noah linux_binary
Run Code Online (Sandbox Code Playgroud)

以我的经验,二进制文件的行为与我在Ubuntu计算机上看到的行为相匹配。