是否可以在 OS X 中创建 Linux 兼容层?
有人创建了 xbinary
,它本质上是 binfmt_misc
的 OS X 端口作为kext,这里:http://www.osxbook.com/software/xbinary/ .从这里的想法扩展,我猜测是否可以在 OS X 中创建一个 Linux 兼容层:
xbinary
显然是使内核接受 ELF 的原因。当遇到 ELF 时... ld-linux.so
的端口它本身是一个 Mach-O 二进制文件,启动后加载 ELF 库(在某种程度上也可以使用 Mach-O 库)。 int 80h
和 x86
系统上的 amd64
)并将它们转换为内核中相应的 OS X 系统调用,或者让 ld-linux.so
用另一个库中的一个小函数调用替换所有系统调用,在用户空间中转换它们。 最佳答案
我认为您还需要让 OS X 支持 Linux 特性,以便系统调用的行为与 Linux 的相同(如果存在)
除此之外,二进制文件可能依赖于存在于更高范围地址空间中的 VDSO 垫片,这通常由 libc
处理。在 Linux 上的实现
许多其他微妙之处是可能的......
关于linux - 在 OS X 下运行 Linux 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300641/