【问题标题】:Chrome Native Client process modelChrome Native Client 进程模型
【发布时间】:2016-01-05 00:24:44
【问题描述】:

这可能是一个相当基本的问题,但到目前为止,我查看过的有关 Chrome Native Client 和 Chromium 的技术文档似乎都没有直接解决这个问题:

当 Chrome 在 html 页面中遇到 application/x-pnal 类型的 <embed> 元素时,它是否将 Native Client 模块加载到与托管当前页面的 Tab 相同的进程空间中?那么,在创建并运行 NaCl 模块之后,例如在 HandleMessage(const pp:Var&) 方法中,代码是否在与执行页内 javascript 的线程不同的线程中运行?

【问题讨论】:

    标签: javascript google-chrome google-nativeclient


    【解决方案1】:

    Native Client 始终在独立于 Chrome 的进程中运行,沙盒设计的一部分是整个地址空间必须在 NaCl 的控制之下。每种架构都有不同的沙箱实现,例如on ARMNaCl 将地址空间的底部 1GiB 保留给不受信任的代码(带有指向 0 的保护页和紧随其后的系统调用蹦床),而顶部的 3GiB 用于受信任的代码库。 x86-32 改为使用分段来强制执行地址空间限制,x86-64 可能正在处理中(有足够的地址空间,因为它只为不受信任的代码提供 4GiB)但仍然使用自己的进程,因为信号处理和系统调用之类的东西使用现有的 NaCl 设计,过滤更安全。

    您可能对how syscalls work更感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多