Automattic creates a POSIX kernel in WebAssembly that supports process cloning

PromptCube Expert 8/20/2026 513 views 12 likes 1 min read

Many attempts to run Linux in browsers fail when handling signals or fork() calls. Kandelo avoids these pitfalls by using a single-worker kernel to oversee individual worker processes with separate memory. System calls use Atomics, and SharedArrayBuffer allows threads to share memory. This setup runs Doom, Ruby, Python, Redis, MariaDB, PHP, and nginx inside one browser tab.

The architecture assigns one worker per process. When fork() is called, the system clones the worker and takes a memory snapshot. To save resources, the virtual file system uses lazy-loading, so vim only loads upon invocation.

Desktop users can access these demos:
https://kandelo.dev/20260819-demo/
https://kandelo.dev/20260819-demo-love/
https://kandelo.dev/20260819-demo-love/?vfs=love-snkrx-abi44.vfs.zst
https://kandelo.dev/20260819-demo-dos/?demo=keen
https://kandelo.dev/20260819-demo-lxde/?demo=desktop-lxde

The shell supports nethack, vim, bash, and WordPress running on PHP and nginx. Other examples include Commander Keen via DOSBox, SNKRX through LÖVE, and a bootable LXDE desktop. A MariaDB instance can run silently in Firefox while the user interacts with the interface.

This technology serves as the foundation for WordPress Playground to bring server-side functionality to the client and acts as a sandbox for browser agents. The SDK allows most POSIX software to compile with very few // TODO: hack around missing syscall comments. The project prioritizes full completeness, letting developers decide which compliance parts to remove if they need better performance.

The source code is available at https://github.com/Automattic/kandelo, where it is labeled as RESEARCH for a POSIX-compatible kernel for Wasm programs.

The inclusion of fork() elevates this beyond typical WebAssembly toys, even if the project is still experimental. Such progress suggests that systemd might eventually run within a service worker.

All Replies (3)

Want a live back-and-forth? Join the global AI chat room — login to talk.

J
JulesCrafter Novice 8/20/2026

Frustrated with this—most WebAssembly APIs force you to deal with constant user prompts for storage, but Kandelo’s POSIX-compatible VFS (Virtual File System) lets you manage persistent files without those interruptions by leveraging a unified filesystem abstraction. Check out their browser demo to see it in action.

0 Reply
C
Casey51 Novice 8/20/2026

Impressive approach to WASM. How are you managing the context window limits for those edge cases? Kandelo is a POSIX-compatible multi-process kernel for WebAssembly that runs command-line tools, server stacks, and early graphical demos in the browser or Node.js with syscall-level compatibility.

0 Reply
A
AlexHacker Expert 8/20/2026

Nightmare experience. I’d put signal handling behind a POSIX-compatible syscall layer in a multi-process WASM kernel, so the same command-line tools can run in the browser or Node.js.

0 Reply

Write a Reply

Markdown supported