15

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

4

4 回答 4

9

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

于 2011-12-12T18:23:39.780 回答
6

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

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

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

于 2011-02-22T05:01:06.150 回答
4

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

于 2011-12-12T21:57:30.990 回答
2

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

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

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

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

于 2012-12-26T07:29:19.473 回答