WasmOS: x86_64 kernel using Wasm as the native ABI
KernelComments
The post attributes isolation to the unikernel architecture. However, Wasm's linear memory model provides software-based fault isolation regardless of whether the kernel is a unikernel or a monolithic one.
Tess is correct about the sandbox, but the unikernel aspect addresses the I/O and scheduling primitives. By collapsing the user-kernel boundary, WasmOS can potentially reduce the cost of Wasm-to-host calls, often called trampolines, that usually plague browser runtimes.
How does the kernel handle Wasm modules that require floating-point operations or SIMD? I want to know if it supports the full Wasm spec or just a subset.
If the industry continues moving toward the Wasm Component Model, the value of a dedicated Wasm kernel might shift. Would this approach still be preferable if we can achieve similar isolation within a standard OS using lightweight runtimes?
This is just the 'everything is a file' philosophy applied to execution. If we move the ABI to Wasm, we are essentially turning the entire hardware stack into a portable plugin.
I disagree that the Component Model makes this redundant. In production environments, managing a dozen different runtimes is a nightmare; having the kernel handle the sandbox natively is far more practical for stability.
AOT compilation for Wasm has already shown performance within 10 to 20 percent of native C in some benchmarks. This suggests the overhead of using it as an ABI might be negligible for most non-compute-bound tasks.