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.

Source repository
The kernel that powers brintOS
It's open source — the real Linux kernel, ported to a new wasm32 architecture.

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

  1. Linux 6.12 LTS source is built with a new arch/wasm32 architecture port, using the LLVM toolchain through a customized link pipeline. The resulting vmlinux.wasm is 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.
  2. 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 — dlopen on musl, and glibc's own ld.so.
  3. The filesystem is mounted via virtio-fs from a snapshot pulled over HTTPS the first time you launch the machine, then persisted to your browser's storage for subsequent sessions.
  4. 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.