Platform
Linux in the Browser
brintOS runs Linux 6.12 LTS inside the browser tab on your CPU — no remote server, no x86 emulator, no translation layer.
What this is
Every brintOS machine is a full root filesystem. When you press Launch, the browser tab loads the kernel binary, hands it the contents of your filesystem snapshot, and boots Linux directly on the WebAssembly engine your browser already has. PID 1 starts. udev settles. Bash runs. Your dotfiles are there.
Once the machine is up, the tab is the host: your CPU executes the kernel and every binary natively as WebAssembly, your RAM backs the kernel's memory, and your real USB, serial, and audio devices are reachable through the browser's hardware APIs. We never proxy your computation to one of our servers, and we never throttle.
How it works
- Linux 6.12 LTS source is built with a new
arch/wasm32architecture port, using the LLVM toolchain through a customized link pipeline. The resultingvmlinux.wasmis the same kernel you would find on a real Linux box — same scheduler, same memory manager, same VFS, same signal subsystem — just compiled to WebAssembly. - Userland (bash, coreutils, busybox, the rest of the distro) is compiled the same way against a
wasm32 libc port that talks to our syscall ABI — musl and glibc are both supported, as
equal first-class choices. There is no x86 translation layer — every binary is a native
wasm executable. The minimal images static-link everything into self-contained binaries; dynamic
linking is real too —
dlopenon musl, and glibc's ownld.so. - The filesystem is mounted via
virtio-fsfrom a snapshot pulled over HTTPS the first time you launch the machine, then persisted to your browser's storage for subsequent sessions. - Block storage, network, USB, serial, audio, MIDI, and HID devices are delivered through HardwareJS, the JavaScript hardware platform that gives the kernel its memory, its CPUs, and its device backends.
Why a browser tab?
The browser is the only piece of software that already runs on every laptop and every desktop, with no install, no admin password, no support ticket. If we can boot Linux inside one — and we can — your toolchain can live anywhere a URL can.
Curious about the parts? Read up on HardwareJS for the JavaScript hardware platform, or the brintOS toolchain for the compiler that makes building wasm-native programs feel like building native Linux ones.
Want the why instead of the how? Our blog post Why we compiled real Linux to WebAssembly walks through the alternatives we rejected — x86 emulators, kernel reimplementations, WASI — and why
a real arch/wasm32 port (with your choice of musl or glibc) was the only path that
delivers real Linux semantics at native wasm speed.