Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/okuoku/wasmlinux-project
Build environment WasmLinux kernel and userland
https://github.com/okuoku/wasmlinux-project
lkl wasm webassembly
Last synced: 3 months ago
JSON representation
Build environment WasmLinux kernel and userland
- Host: GitHub
- URL: https://github.com/okuoku/wasmlinux-project
- Owner: okuoku
- Created: 2023-11-26T12:32:43.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-28T09:32:10.000Z (11 months ago)
- Last Synced: 2024-02-28T10:38:42.533Z (11 months ago)
- Topics: lkl, wasm, webassembly
- Language: Makefile
- Homepage:
- Size: 39.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WasmLinux project (prototype)
WasmLinux project is an effort that create WebAssembly "native" Linux
environment, both kernel and userland.- WasmLinux kernel is patched LKL kernel.
- WasmLinux userland is patched Musl libc and BusyBox
- Toolchain is stock Clang + LLVM without any patches
- "Runner" is the integration component that implements syscall
entrypoint etc.## Demo
https://wasmlinux-demo.pages.dev/
## Build
Note: Currently, this project is in early PoC phase.
Entire build dependencies are contained as submodules.
Please make sure thie repository is cloned with `--recursive` option.On Windows or macOS, case sensitive filesystem is required to build Linux
kernel.### Host tool setup
Install `llvm-project` and `wabt` to `host/` directory.
### WasmLinux kernel and userland
Kernel build scripts are written in CMake. You can invoke it with:
```
cmake -P phases/build-phase1-kernel.cmake
cmake -P phases/build-phase2-libc.cmake
cmake -P phases/build-phase3-kernel.cmake
cmake -P phases/build-phase4-userland.cmake
```Phase5 is standard CMake project.
### Runner
`runner/hostrunner` contains Runner sources and it is standard CMake project.
To build Web version of WasmLinux, build Runner with Emscripten.
Otherwise, Runner is just a standard C++20 project and it should run on
anywhere supporting both libuv and C++20.