Apologize ahead of time if this is a naive question and I need to jump into more traditional OS dev to get my bearing. I’m a mobile/services taking a break and I just happen to currently be intrigued by Rust and WASM.
Apologize ahead of time if this is a naive question and I need to jump into more traditional OS dev to get my bearing. I’m a mobile/services taking a break and I just happen to currently be intrigued by Rust and WASM.
Ah, a microkernel approach! It's not a bad idea but tends to lose out in performance terms.
> Some interim solution for providing sockets would have to be built until wasi spec supports it
With a little ambition, and an inter-process communication framework, you could have a "network card microservice" that's got access to the PCIe registers and takes packets in and out. You could then either do "user-mode networking" in the application or run a normal IP stack to hand out packets to more normal looking sockets.
> No file system, no writing to disc
No reason why you can't write a NVMe driver in WASM...
In that context you can think of the hypervisor as your microkernel which provides a unified but very low level API to the unikernel-based microservices.
Granted, most programs don't run long enough/process enough data for poor lifecycle hygiene to become noticeable in GC'd languages.