如何在 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)都可以加载这样 OS X 版本的系统库就可以重复使用,这样你就不需要编写“托管在 OS X 上”的 libc.so 并且系统调用可以由将 Linux 调用转换为内核中的 OS X 调用的 kext 来处理。
或者,以更优雅的方式,将精简的 Linux 内核实现为 kext,使 OS X 内核具有双重用途。但是,这将要求您使用两组库。 (二进制文件不会冲突,所以基本上没问题)
关于linux - 在 Mac OS X 下模拟 Linux 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1954223/