OK is a kernel for Wasmi.
Currently only supports x86_64, but could be ported.
This project uses the Limine boot protocol.
$ cargo build --target x86_64-unknown-none
[put the generated kernel into a disk image with Limine]
$ qemu-system-x86_64 -bios path/to/OVMF.fd -hda path/to/DISK -m 512 -serial stdio
If you build with --release the debug messages from all the WASI support functions in src/syscall.rs will not show up.
An example limine.conf might be:
/ok
protocol:limine
path:boot():/ok
cmdline:doom
module_path:boot():/wasidoom.wasm
module_path:boot():/doom1.wad
module_string:./doom1.wad
module_path:boot():/doom_profile
module_string:/etc/profile
doom_profile:
HOME=/
A module without a string specifies the WebAssembly code to run.
- The usual kernel things (memory management, interrupt handling, and a virtual filesystem)
- Serial debug output and graphical terminal output
- WebAssembly interpreting with Wasmi
- File I/O
- Arguments and environment variables
- Input