The real system, booting inside this page: fx-init as PID 1, the content-addressed store, dhake materializing the rootfs, and fxsh on the console — a 32-bit Linux guest emulated by v86 in WebAssembly.
Nothing is fetched until you click: the kernel, initrd and emulator together are ~3.7 MB, and the guest takes a few seconds to reach the prompt. The link opens the same demo as a full page if scripts are off.
$ curl -fL -o fixpoint.raw.gz \ https://github.com/fixpoint-linux/fx-init/releases/download/image-m3/fixpoint-m3-x86_64.raw.gz $ gunzip fixpoint.raw.gz
That is a 64 MiB raw disk image (the download is ~15.8 MB gzipped). The partition is blank until first boot — see what just happened. The release lives at fx-init · image-m3.
$ sha256sum fixpoint.raw bf8c703f7e13aca975e2c4a6b95173f5981bd4f20478fc94ac88bd15f5fd0879 fixpoint.raw
Boot the image under QEMU, with the serial console attached.
$ qemu-system-x86_64 -machine q35 -accel kvm -cpu host -m 2048 -nographic \ -drive file=fixpoint.raw,format=raw,if=virtio
You need qemu-system-x86_64 plus hardware virtualization (/dev/kvm) — the image is x86_64 and boots under -accel kvm.
Leave QEMU with Ctrl-A X.
The serial console ends at an interactive prompt — you land in the fixpoint shell:
SeaBIOS ... Linux version 6.12.19 ... ... Run /fx/store/<hash>-fx-init/fx-init as init process fx-init: disk store mounted (current v3) fx-init: pivoted to tmpfs root (magic 0x1021994) fx-init: boot-ok v3 fx>
fx-init reads the current store generation, materializes the rootfs with dhake, supervises services, and maintains a live Datalog DB — the sole writer of runtime state. The prompt it hands you is fxsh, fx-core's own shell — the real fx-* commands from the image (fx-seq 1 5 | fx-sort -r, fx-cat /etc/hostname).
A Dhall config activates to a generation; each generation is one atomic snapshot of the whole system.
The timeline is the system's complete history; a rollback is recorded as history and is itself undoable.
The image ships a blank primary partition, formatted by the guest on first boot.
This is an early milestone: it boots and lands you at a prompt — not yet a general-purpose desktop.
The same image can be built from source instead of downloaded.
$ git clone https://github.com/fixpoint-linux/fx-init && cd fx-init $ git submodule update --init --recursive $ (cd zig && zig build -Doptimize=ReleaseSafe) $ ./zig/zig-out/bin/fx-image \ --config m3/config-console.dhall \ --package-set m3/package-set.dhall \ --pin scripts/kernel-pin.txt \ --out fixpoint.raw
The result is the same fixpoint.raw — boot it with the same QEMU command above.