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

标签 linux macos binary emulation

如何在 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/

相关文章:

linux - 如何获取当前任务的 CPU 编号(在内核中)?

python - 为什么我的线程比我在 Linux 下的 py3k 多处理中要求我的池的进程多?

linux - 让 Tomcat 在 Linux 上与 Netbeans 6.7 良好配合

linux - Docker 如何在 macOS 主机下运行 Linux 内核?

Excel VBA 位控制

c - 二进制和十进制转换

linux - 静态链接的openssl,从哪里加载CA证书?

Python:通过让用户编辑默认值来获取用户输入

macos - 如何在终端 (Mac) 中运行 .lua 文件

linux - ELF程序头虚拟地址和文件偏移量