据我所知,WASI 为沙盒 WebAssembly 应用程序提供了访问底层操作系统的权限,Emscripten FS 还提供了几个文件系统,例如 NODEFS。我的问题是 WASI 和 EMscriptenFS 都代表提供沙盒文件系统的相同目标,或者这两者有不同的用法?有人可以帮助我理解两者吗?
问问题
385 次
1 回答
2
Emscripten 本身并不旨在提供任何沙盒。使用 emscripten,任何已编译代码的沙盒都由主机环境提供。例如,到目前为止,如果 Web 拥有非常强大的沙箱,则它是最常见的主机。如果你在 web 上运行 emscripten 代码,它与页面上的其余 JS 代码具有完全相同的权限。同样,如果您在 node 下运行 emscripten 生成的代码,则 if 具有与进程中其余 JS 代码相同的权限(即默认情况下,这意味着与 node 进程本身具有相同的权限)。
然而,WASI 的目标之一是定义一个严格的沙箱,以便主机环境可以简单地决定与 WebAssembly 模块共享哪些资源。
于 2021-03-08T15:39:52.720 回答