2009-12-23 68 views
21

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

谷歌搜索我发现了几个模拟器,但没有一个在Mac上运行Linux二进制文件。有很多关于在Linux上运行Mac OS X的文章和类似的东西 - 但这与我想做的事情相反。

更新:

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

我想要做的唯一事情就是找到一种方法来运行一个二进制文件,我没有源代码并且已经编译对于Linux,但我不想在Linux下运行它,但在Mac OS X下运行。因此,我对模拟器有疑问。

+2

如果你只是想从* nix/POSIX世界运行软件,它可能会编译,只要它不依赖于操作系统特定的库。芬克或MacPorts可以帮助这一点。 – Matt 2009-12-23 17:40:32

+0

我想不出任何可用于Linux的软件,但不适用于Mac(不幸的是,因为我是一名Linux员工)。你为什么要找这样的东西? – Davide 2009-12-23 18:12:43

+0

Team Fortress 2专用服务器是一个仅适用于Windows和Linux的示例: -/ – Tommy 2011-10-10 14:47:49

回答

7

设置一个虚拟机(我亲自使用VMWare Fusion),然后在虚拟机上安装任何你想要的Linux发行版。或者,如果你有Linux程序的源代码,你可以在Mac上重新编译它,然后本地运行它。如果您安装了FinkMacPorts,则可以安装许多开源程序,而不会有太多麻烦。

+0

我添加了Fink和DarwinPorts的链接,因为它们通常比下载源代码更容易,并试图编译它,意识到你需要首先安装其他东西,然后下载它并尝试编译它等等。 – 2009-12-23 17:44:35

+0

很酷。顺便说一句,现在它实际上是MacPorts。 ;) – mipadi 2009-12-23 17:46:50

2

如果您决定走虚拟化路线,请考虑VirtualBox

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

7

以及有一个项目引入类似的Linux的binfmt_misc到OS X所以现在你需要的是一个ELF装载机,动态链接在Mac OS X上运行Linux的可执行文件可以同时加载Mach-O和ELF,以及一些将Linux调用转换为OS X的机制。

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

或者,在一个更优雅的方式,实现一个精简的Linux内核的内核扩展,使OS X内核双重目的。但是,这将需要您使用两套库。 (二进制文件不冲突,因此在很大程度上是好的)

+1

你有这个链接吗? – 2014-07-14 14:34:26

1

我最近发现​​,你可以用它来在MacOS运行Linux二进制文件。您可以通过自制软件(brew install linux-noah/noah/noah)安装诺亚。然后,你应该能够做到这一点:

noah linux_binary 

以我的经验二进制的行为相匹配我看到我的Ubuntu的机器上。