linux-wasm is an experimental project that ports the Linux kernel to run directly as a WebAssembly module, enabling a full Linux environment to boot and operate entirely inside a web browser without virtualization or cloud infrastructure. Instead of emulating Linux through a virtual machine, this project compiles the actual kernel for a WebAssembly target, allowing it to execute natively within a Wasm runtime. The system includes essential userland tools provided by BusyBox along with a lightweight libc implementation, making it possible to interact with a shell and execute basic commands in-browser. A terminal interface is implemented using web technologies, allowing users to experience a functioning Linux system through a standard web page. The project includes scripts to build and run the environment either locally, in containers, or directly in the browser, demonstrating flexibility in development workflows.
Features
- Linux kernel compiled to run natively in WebAssembly
- Bootable Linux environment directly in the browser
- BusyBox-based userland with standard shell commands
- Terminal interface implemented with web technologies
- Scripts for building and running across environments
- Lightweight alternative to traditional virtual machines