工具介绍
一个概念验证微内核,实现了在环 0 中运行的 WebAssembly "用户模式"。
Nebulet ## Nebulet 是什么? Nebulet 是一个在 2018 年夏天开始的 Google 夏季代码项目。有关 Nebulet 和 GSoC 的更多详细信息,请参阅 这里。 在底层,Nebulet 是一个微内核,它在环 0 中执行 WebAssembly 模块,并使用单一地址空间来提高性能。这可以降低上下文切换的开销,系统调用仅是函数调用,并且可以进行奇异的优化,这些在传统操作系统上根本不可能实现。 WebAssembly 已经验证,并且由于用于优化边界检查的一个技巧,它甚至无法表示写入或读取超出其分配的线性内存的行为。
Cranelift 编译器用于将 WebAssembly 编译为原生机器码。一旦编译完成,应用程序和运行时之间就不会存在复杂的交互(与 jit 编译器(如 v8)不同),从而减少漏洞的面积。