linux - 在 OS X 下运行 Linux 二进制文件

标签 linux macos interop compatibility

是否可以在 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 库)。
  • 另一个捕获 Linux 系统调用的 kext(int 80hx86 系统上的 amd64)并将它们转换为内核中相应的 OS X 系统调用,或者让 ld-linux.so用另一个库中的一个小函数调用替换所有系统调用,在用户空间中转换它们。
  • 最佳答案

    我认为您还需要让 OS X 支持 Linux 特性,以便系统调用的行为与 Linux 的相同(如果存在)
    除此之外,二进制文件可能依赖于存在于更高范围地址空间中的 VDSO 垫片,这通常由 libc 处理。在 Linux 上的实现
    许多其他微妙之处是可能的......

    关于linux - 在 OS X 下运行 Linux 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300641/

    相关文章:

    java - 将 Clojure 函数作为 java.util.Function 传递

    linux - Linux Mint 中 Selenium PHPUnit 测试中的空白 Firefox 窗口问题

    linux - 有没有办法检查服务器上某个端口是否打开?

    objective-c - 无法将字符串复制到粘贴板

    macos - 如何在 OS X 10.4 上的 AppleScript do shell 脚本中使用 UTF-8 编码命令

    .net - Firebird .NET 互操作

    c - 在 Linux 中从/bin/启动 C 应用程序时获取当前路径

    Linux LVM lvs 命令从 cron perl 脚本失败但直接从 cron 运行

    node.js - 为 node.js 构建 libxmljs 时出错

    ClojureScript 互操作