For two years, LinuxOnTab booted a real x86 kernel inside an emulated CPU. 2.0 throws the CPU emulator out. We compiled the Linux kernel itself to WebAssembly — and now your programs are native wasm too.
1.0 emulated a PC. 2.0 is the kernel — as WebAssembly. Removing the emulation layer is what let us start compiling real, full-screen Unix programs straight to wasm.
Your browser runs v86, a full x86 CPU emulator. Inside it, a real x86 Linux kernel boots Alpine. Every instruction is x86 machine code, interpreted in the tab.
No CPU emulator. The Linux 6.1 kernel is compiled to wasm32, and programs are compiled to wasm too. Your browser runs them directly; syscalls hit the wasm kernel — one Web Worker per process.
Not shims or reimplementations — the actual upstream sources, cross-compiled to WebAssembly and running on the wasm kernel. A sampling of what boots today:
Plus lotfm (a native two-pane file manager), xeyes / X11 (Xvfb + x11vnc), OpenSSL, zlib, Node, and a growing package tree.
Linux 6.1 built as a .wasm module. No x86 layer between your program and the kernel.
fork() and vfork() via an asyncify thunk; one Web Worker per task, single CPU token.
Pseudo-terminals (/dev/pts), ncursesw, and TERM=xterm-256color — so full-screen TUIs actually render.
Clang, wasm-ld and wasm-opt run in the guest. LinuxOnTab can build the programs it ships.
WispSlirp (TCP-over-WebSocket) gives curl, git and pip a real route to the internet.
Your filesystem is saved to the browser via a block-delta overlay — snapshots survive reloads.
2.0 is a technical preview and 1.0 stays the stable default — they're different tools, and for now both live at linuxontab.com.
| 1.0 · v86 | 2.0 · wasm | |
|---|---|---|
| Engine | x86 CPU emulator (v86) | Kernel compiled to wasm — no emulation |
| Programs | x86 binaries, from Alpine apk | Native wasm binaries (musl) |
| Userland | Alpine Linux | BusyBox + musl libc |
| Syscalls | into an emulated x86 kernel | straight to the wasm kernel |
| Best for | the widest package set, today | closer to the metal, lighter, the future |
| Status | Stable · default | Technical preview |
No install, no server, no Docker — and now, no emulator. Open 2.0, type mc, and watch a real file manager paint itself in your browser.