【问题标题】:Can I run Google's Native Client outside of the browser?我可以在浏览器之外运行 Google 的 Native Client 吗?
【发布时间】:2011-01-14 11:25:27
【问题描述】:

是否可以在浏览器之外作为进程沙箱运行 Google NaCl?

【问题讨论】:

  • 我最近在讨论组上问了同样的问题。答案是肯定的,正如 Mark Seaborn 所回答的那样,使用 sel_ldr。

标签: google-nativeclient


【解决方案1】:

是的。 Native Client 的独立版本包含一个名为“sel_ldr”的程序,该程序在 Web 浏览器之外运行 NaCl 沙箱。很多 NaCl 的测试套件通过在 sel_ldr 下而不是在浏览器下运行程序来测试 NaCl。

【讨论】:

    【解决方案2】:

    Native Client documentation 可能是尝试弄清楚一切如何运作的一个很好的起点。

    正如 Mark Seaborn 和 Bennet Yee 所指出的,您最好考虑使用 sel_ldr。有关如何将 sel_ldr 包含在“The life of sel_ldr”中的更多详细信息。

    我个人没有在浏览器之外实现任何使用 NaCl 的东西,所以很遗憾我无法评论这样做的难易程度。

    【讨论】:

    • 这里提供的大部分链接都已过期。我有兴趣在浏览器之外运行本机沙盒代码,而 NaCl 可能是一个完美的解决方案(或者不是?)。
    • @deadalnix 我已更新我的答案以指向当前文档。
    【解决方案3】:

    要补充 Mark 的答案,请查看 sel_universal 目标。显然有些接口是不支持的,例如 Pepper 接口,因为这样的独立运行不涉及浏览器。此外,我们支持的稳定 ABI 是由“集成运行时”或 irt 公开的,并且 irt 代码 thunk 假定浏览器存在。通过 sel_ldr 独立使用 NaCl 最初可能必须使用 syscall 接口,直到编写替代 irt。 (注意:我们不保证系统调用接口的稳定性。)

    【讨论】:

      【解决方案4】:

      您可以尝试包含在 Native Client 源代码中的 run.py

      这是一个运行 hello world 程序的示例。

      make test_hello_world_nexe
      python native_client/run.py out/Debug/hello_world_newlib_x64.nexe
      

      此脚本可以构建、搜索和调用sel_ldr,并自动将适当的参数传递给它。

      【讨论】:

        猜你喜欢
        • 2019-04-25
        • 2010-11-17
        • 2013-08-12
        • 1970-01-01
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 2014-12-28
        • 2013-06-06
        相关资源
        最近更新 更多