Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ok

OK is a kernel for Wasmi.

Currently only supports x86_64, but could be ported.

This project uses the Limine boot protocol.

Getting started

$ 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=/

doom1.wad and wasidoom.wasm

A module without a string specifies the WebAssembly code to run.

What works

  • 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

What doesn't work

  • Input

About

Operating system kernel for running WebAssembly

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages