WASI vs Emscripten FS,沙盒文件系统
WASI vs Emscripten FS, sand-boxed file system
据我所知,WASI 为沙盒 WebAssembly 应用程序提供了对底层操作系统的访问权限,Emscripten FS 也提供了几个文件系统,例如 NODEFS。我的问题是 WASI 和 EMscriptenFS 都代表相同的 objective 来提供沙盒文件系统,或者这两者有不同的用法?有人可以帮助我理解两者吗?
Emscripten 本身并不旨在提供任何沙盒。使用 emscripten,编译代码的任何沙箱都由主机环境提供。例如,如果 Web 拥有非常强大的沙箱,那么到目前为止最常见的主机。如果您 运行 网络上的 emscripten 代码与页面上的其余 JS 代码具有完全相同的权限。同样,如果您 运行 emscripten 在节点下生成代码,如果具有与进程中其余 JS 代码相同的权限(即默认情况下,这意味着与节点进程本身相同的权限)。
然而,WASI 的目标之一是定义一个严格的沙箱,这样主机环境就可以轻松地准确决定与 WebAssembly 模块共享哪些资源。
据我所知,WASI 为沙盒 WebAssembly 应用程序提供了对底层操作系统的访问权限,Emscripten FS 也提供了几个文件系统,例如 NODEFS。我的问题是 WASI 和 EMscriptenFS 都代表相同的 objective 来提供沙盒文件系统,或者这两者有不同的用法?有人可以帮助我理解两者吗?
Emscripten 本身并不旨在提供任何沙盒。使用 emscripten,编译代码的任何沙箱都由主机环境提供。例如,如果 Web 拥有非常强大的沙箱,那么到目前为止最常见的主机。如果您 运行 网络上的 emscripten 代码与页面上的其余 JS 代码具有完全相同的权限。同样,如果您 运行 emscripten 在节点下生成代码,如果具有与进程中其余 JS 代码相同的权限(即默认情况下,这意味着与节点进程本身相同的权限)。
然而,WASI 的目标之一是定义一个严格的沙箱,这样主机环境就可以轻松地准确决定与 WebAssembly 模块共享哪些资源。