Skip to content

r1ru/WasmOS

 
 

Repository files navigation

WasmOS

WasmOS is a microkernel developed based on HinaOS. It implements a WebAssembly (Wasm) "userland", and all Wasm binaries are executed in Ring 0 using WAMR. See my blog for more details.

WasmOS_shell

Quickstart

First clone this repository, remember to add the --recursive option as Wasm uses WAMR as a submodule.

git clone --recursive https://github.com/r1ru/WasmOS

Next, build and run WasmOS. The easiest way is to use Dev Container. Launch the container and execute following commands. If you're not using it, please refer to the Dockerfile, install the required packages, and build it.

make                # Build WasmOS
make V=1            # Build WasmOS (Output detailed build logs)
make run            # Run WasmOS in qemu (single core)
make run CPUS=4     # Run WasmOS in qemu (4 cores)

If it starts successfully, the shell server is launched and you can execute following commands.

start hello         # Run a helllo-world program
start wasm_ping     # Run a Wasm binary that uses message passing APIs
start wasm_webapi   # Run a toy web server (Wasm binary). Access localhost:1234 to see the page

Contributing

We accept bug reports, feature requests, and patches on GitHub.

Similar Projects

About

A proof-of-concept microkernel that runs WebAssembly natively.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 87.4%
  • Python 5.4%
  • Makefile 4.7%
  • Assembly 2.5%