Skip to content

Releases: fixpoint-linux/fx-init

fixpoint-linux image M3 (x86_64) — 64 MiB, with the fx-core shell

Choose a tag to compare

@jmars jmars released this 05 Oct 16:55

fixpoint-linux bootable image — M3 (x86_64) — the small one, with the shell

Boots fixpoint-linux under QEMU with -drive only and lands you at an
interactive fxsh prompt — fx-core's own shell, running the real fx-*
binaries. Built by fx-image (fx-init @ 48cae93).

  • fixpoint-m3-x86_64.raw.gz — 64 MiB raw image, gzip (~15.8 MiB on the wire)
  • uncompressed sha256: bf8c703f7e13aca975e2c4a6b95173f5981bd4f20478fc94ac88bd15f5fd0879

Boot it

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

qemu-system-x86_64 -machine q35 -accel kvm -cpu host -m 2048 -nographic \
  -drive file=fixpoint.raw,format=raw,if=virtio

You get fx-init: boot-ok v3, then fx> . Try fx-cat /etc/hostname,
fx-seq 1 5 | fx-sort -r, fx-ls /. Ctrl-A X quits QEMU; exit leaves the
shell.

Why this supersedes M2 and M1

M1 (64 MiB) was broken and M2 (128 MiB) was a workaround. The payload was
built Debug/unstripped — a ~47 MB store against a 32 MiB partition — so cp -a /fx/store ran out of space and init silently fell back to the ramfs store. M1
still printed boot-ok v3; it had no persistence or roll-forward. M2 simply
made the image big enough to fit the bloat.

This release fixes the cause: the payload is built with
-Doptimize=ReleaseSmall, which takes the store to 3.3 MB, so the image
fits back in 64 MiB with the disk store actually seeding. Verified on this
artifact: the store mounts, the raw file's contents change across a boot, three
boots persist at v3, and the download is ~15.8 MiB.

Provenance

Input Value
config m3/config-console.dhall (config-good + the fxsh console service)
package set m3/package-set.dhall
kernel pin scripts/kernel-pin.txt (6.12.19-tiny, drivers built-in)
fx-init 48cae93
activated generation v3

Early milestone: you get the shell and the supervisor; not yet a
general-purpose desktop.

fixpoint-linux image M2 (x86_64) — fx-core shell

Choose a tag to compare

@jmars jmars released this 05 Oct 16:20

fixpoint-linux bootable image — M2 (x86_64) — boots into the fx-core shell

A single raw disk image that boots fixpoint-linux under QEMU with -drive
only, and lands you at an interactive fxsh prompt — fx-core's own shell,
running the real fx-* commands (no recompilation). Built by fx-image
(fx-init @ ad42206).

  • fixpoint-m2-x86_64.raw.gz — 128 MiB raw image, gzip (~32.5 MiB on the wire)
  • uncompressed sha256: 1dea1346530d2c85b784d20ba49540779bd8f4fccd656ba428c01e49c4eed66e

Boot it

curl -fL -o fixpoint.raw.gz \
  https://github.com/fixpoint-linux/fx-init/releases/download/image-m2/fixpoint-m2-x86_64.raw.gz
gunzip fixpoint.raw.gz

qemu-system-x86_64 -machine q35 -accel kvm -cpu host -m 2048 -nographic \
  -drive file=fixpoint.raw,format=raw,if=virtio

The console reports fx-init: boot-ok v3 and then gives you fx> . Try
fx-cat /etc/hostname, fx-ls /, or fx-seq 1 5 | fx-sort -r. Ctrl-A X
quits QEMU; typing exit leaves the shell.

⚠️ image-m1 was defective — do not use it

image-m1 (64 MiB) silently failed to seed its disk store: the store is
~47 MB (the image builds its payload binaries unoptimised) but --size-mb 64
leaves only a 32 MiB partition, so cp -a /fx/store ran out of space and init
fell back to the ramfs store. It still printed boot-ok v3, so the failure was
invisible — but that image had no persistence and no roll-forward. This M2
image is 128 MiB, the seed is verified (the disk image's contents change across
a boot, and a second boot of the same disk comes up), and it is the one to use.
The underlying store bloat is a known open item.

Provenance

Input Value
config m3/config-console.dhall (config-good + the fxsh console service)
package set m3/package-set.dhall
kernel pin scripts/kernel-pin.txt (6.12.19-tiny, drivers built-in)
fx-init ad42206
activated generation v3

The image carries a blank primary partition, formatted by the guest on first
boot. It is an early milestone: you get the shell and the supervisor; it is not
yet a general-purpose desktop.

fixpoint-linux image M-1 (x86_64)

Pre-release

Choose a tag to compare

@jmars jmars released this 05 Oct 12:35

fixpoint-linux bootable image — M-1 (x86_64)

A single raw disk image that boots fixpoint-linux under QEMU with
-drive only: no -kernel, no -initrd, no bootloader on the host. Built by
fx-image (fx-init @ 808ea9f).

  • fixpoint-m1-x86_64.raw.gz — 64 MiB raw image, gzip (≈16.8 MiB on the wire)
  • uncompressed sha256: 6cdd27518ed2fc4dd2cbcaecbc6abfec8b0cce72eba97d52ac078ad1f7d7d2d3

Boot it

curl -fL -o fixpoint.raw.gz \
  https://github.com/fixpoint-linux/fx-init/releases/download/image-m1/fixpoint-m1-x86_64.raw.gz
gunzip fixpoint.raw.gz

qemu-system-x86_64 -machine q35 -accel kvm -cpu host -m 2048 -nographic \
  -drive file=fixpoint.raw,format=raw,if=virtio

Serial console ends with fx-init: boot-ok v3. Ctrl-A X quits QEMU.

Provenance

Input Value
config m3/config-good.dhall
package set m3/package-set.dhall
kernel pin scripts/kernel-pin.txt (6.12.19-tiny, all drivers built-in)
fx-init 808ea9fea89a2b41cfb24030a39283045e8c0068
activated generation v3

The image carries a blank primary partition, formatted by the guest on first
boot (the -kernel path's semantics, packaged). It is an early milestone: the
system boots and reports its own verdict; it is not yet a general-purpose
desktop.

m5-kernel-6.12.19-tiny

Choose a tag to compare

@jmars jmars released this 30 Sep 21:21

Zero-module kernel: linux-6.12.19 LTS, tinyconfig base + image fragment, every disk-path driver =y (virtio_blk, ext4+jbd2/mbcache/crc16 built in). No modules tree.

m5-kernel-6.12.19-m5

Choose a tag to compare

@jmars jmars released this 30 Sep 21:03

Belt kernel: linux-6.12.19 LTS, tinyconfig base + image fragment, disk-path modules as =m (commit 2 flips them =y). Built in debian:stable container; deterministic tar.

m5-kernel-6.12.19-arm64

Choose a tag to compare

@jmars jmars released this 30 Sep 19:45

arm64 (aarch64) kernel for the lane-3 aarch64 boot path: linux 6.12.19 arm64 defconfig, Image.gz + config, zero shipped modules (all boot-path symbols =y: PL011 console, INITRD+RD_GZIP, DEVTMPFS(+MOUNT), TMPFS, EXT4, VIRTIO_BLK/PCI/MMIO). Built in debian:stable with gcc-aarch64-linux-gnu; deterministic tar flags; pin = scripts/kernel-pin-aarch64.txt.

M4 kernel artifact 7.2.7-1-default

Choose a tag to compare

@jmars jmars released this 30 Sep 10:50

Trimmed kernel artifact (vmlinuz + 5 modules + config) extracted from kernel-default-base-7.2.7-1.1.36.8.x86_64.rpm, pinned by scripts/kernel-pin.txt. sha256 f799a72ebfc97224249542f9c52b7b8fcc5332466a04bb872bf5d55478798320 (17933949 bytes).