Release  /  2.0 Technical Preview

We deleted the x86 emulator.

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.

linuxontab — 2.0 · wasm32
What actually changed

Same tab. A completely different engine.

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.

1.0 · today's stable

x86, emulated

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.

v86x86 kernelAlpine · apk
2.0 · the preview

WebAssembly, native

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.

wasm kernelno x86BusyBox · musl
Now running live in the tab

Real Unix programs, compiled to wasm.

Not shims or reimplementations — the actual upstream sources, cross-compiled to WebAssembly and running on the wasm kernel. A sampling of what boots today:

Midnight Commander4.8.33
The blue two-pane file manager, in full color — with its built-in editor (F4).
/ # mc
tmux3.5a
Real terminal multiplexer: server, socket, panes — each pane a genuine /dev/pts.
/ # tmux new -s work
GNU nano8.3
The editor everyone reaches for. Colors, syntax, ^O to save — all working.
/ # nano notes.txt
Python 3+ pip
A full CPython, with pip install over the network. Bottle, Radicale, your scripts.
/ # python3 -m http.server
C / Clangself-hosting
clang · wasm-ld · wasm-opt run inside the guest — it can compile its own programs.
/ # clang hello.c -o hello
zsh · ash · hush5.9 · BusyBox
Three shells now, including full zsh 5.9 — pipelines, functions, $() and subshells all correct.
/ # zsh
SQLite · jq · curl · gittools
The daily toolbox — real HTTPS, real repos, real queries — over WispSlirp networking.
/ # curl -s api… | jq .
clawLLM REPL
A chat-with-tools REPL that talks to real model APIs from inside the tab.
/ # claw -p anthropic

Plus lotfm (a native two-pane file manager), xeyes / X11 (Xvfb + x11vnc), OpenSSL, zlib, Node, and a growing package tree.

Under the hood

What makes 2.0 possible.

Kernel → WebAssembly

Linux 6.1 built as a .wasm module. No x86 layer between your program and the kernel.

Real processes

fork() and vfork() via an asyncify thunk; one Web Worker per task, single CPU token.

Real terminals

Pseudo-terminals (/dev/pts), ncursesw, and TERM=xterm-256color — so full-screen TUIs actually render.

Self-hosting toolchain

Clang, wasm-ld and wasm-opt run in the guest. LinuxOnTab can build the programs it ships.

Networking

WispSlirp (TCP-over-WebSocket) gives curl, git and pip a real route to the internet.

Persistence

Your filesystem is saved to the browser via a block-delta overlay — snapshots survive reloads.

1.0 vs 2.0

Where each one fits.

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 · v862.0 · wasm
Enginex86 CPU emulator (v86)Kernel compiled to wasm — no emulation
Programsx86 binaries, from Alpine apkNative wasm binaries (musl)
UserlandAlpine LinuxBusyBox + musl libc
Syscallsinto an emulated x86 kernelstraight to the wasm kernel
Best forthe widest package set, todaycloser to the metal, lighter, the future
StatusStable · defaultTechnical preview
On the workbench

What we're compiling next.

  • »
    Rust on the guest. The standard library already compiles for wasm; Rust binaries instantiate and run through a new WALI bridge. Cargo-built TUIs are close.
  • »
    A real X desktop. xeyes and the VNC path work today; a full Xvfb session is in progress.
  • »
    More of the tree. Every library we port (glib, libevent, ncurses…) unlocks the next wave of programs.

Boot the future in a tab.

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.