Dart 和 NaCl 都是操作系统项目。我想知道提供一个可以在任何 Chrome 浏览器上执行 Dart 代码的 NaCl 插件有多难?! 与包装的 JavaScript API 相比,Pepper C/C++ API 看起来要好得多。
最佳答案
Nacl 有一些安全限制,使得在其中执行 Jitting VM 变得非常困难(但并非不可能)。它还无法很好地访问 DOM,这将严重限制 VM 的可用性。您可能只希望这种方法适用于使用 Dart 作为脚本引擎的 C++ 程序(例如在游戏中)。
似乎有一个项目试图移植 v8:nacl-v8
他们的自述文件描述了一些问题:
- NaCl 不允许代码段中存在数据。
- 可执行内存必须由 NaCl 标记的特殊区域提供,以用于动态加载的代码。我猜测 Nacl 想要对其进行一些检查,这可能会减慢执行速度。
- 所有代码插入/删除/ self 修改都必须通过 NaCl 服务运行时调用来执行。
- 虚拟机发出的代码必须符合 NaCl 安全约束(例如间接跳转的沙箱、指令对齐)。
关于google-chrome - 将 Dart VM 作为 Chrome NaCl 插件提供有多难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26071050/