Get GoNIX

GoNIX runs as a bootable image under QEMU, VirtualBox, or any cloud. Grab a prebuilt image below for the quickest start, or build it yourself from source.

Prebuilt images

Ready to boot, no build required โ€” published straight from the package repository:

Arch Format Download Checksum
amd64 Bootable ISO gonix-amd64.iso sha256
arm64 UEFI ISO gonix-arm64.iso sha256
arm64 Kernel + RootFS Image ยท rootfs.gz Image ยท rootfs.gz

Boot the amd64 ISO directly in QEMU:

$ curl -LO https://pkgs.ulinux.org/images/gonix-amd64.iso
$ qemu-system-x86_64 -m 1G -cdrom gonix-amd64.iso -nic user,hostfwd=tcp::2222-:22

arm64 ships two ways: a UEFI ISO (gonix-arm64.iso) that boots under VirtualBox on Apple Silicon and any UEFI firmware, and a bare kernel + initramfs for QEMU’s fast direct boot (qemu-system-aarch64 -machine virt -kernel Image -initrd rootfs.gz). Every commit is also archived under https://pkgs.ulinux.org/images/<rev>/. See the Quick start for the full per-platform boot commands.

Give arm64 VMs a virtio-rng device. GoNIX needs the hypervisor to expose an entropy source to seed the kernel CRNG at boot, or anything needing secure randomness (the SSH host key) will block. QEMU/KVM and cloud providers do; VirtualBox’s experimental ARM target does not, so there GoNIX is console-only โ€” see the Quick start.

Build

Prefer to build from source? The build runs in Docker (it needs an Alpine toolchain), so all you need on your machine is Docker and make.

$ git clone https://git.mills.io/prologic/gonix
$ cd gonix
$ make image              # amd64 โ†’ artefacts/boot.iso
$ make image ARCH=arm64   # arm64 โ†’ artefacts-arm64/{boot.iso,Image,rootfs.gz}

The build caches aggressively: prebuilt packages, the Go module cache and the Go build cache are all reused, so rebuilds only redo what changed.

Run

$ ./test.sh               # boot the amd64 ISO under QEMU (SSH on :2222)
$ ARCH=arm64 ./test.sh    # arm64 (native under HVF on Apple Silicon)
$ HEADLESS=1 ./test.sh    # no graphics

Then SSH in:

$ ssh -p 2222 root@localhost     # default password: gonix
GoNIX boot
:: GoNIX is starting up
โœ“ Mounted core filesystems
โœ“ Created device nodes
โœ“ Scanned devices
โœ“ Configured network interfaces
โœ“ Set hostname
:: Boot complete in 20 ms
โœ“ Started network
โœ“ Started sshd
โœ“ Started getty
login: โ–Œ
From PID 1 to a login prompt โ€” the Go init reports Boot complete in 20 ms.

Platforms

Architecture Boot method Download Runs on
amd64 (x86-64) BIOS-booted ISO gonix-amd64.iso QEMU/KVM, VirtualBox, VMware, most cloud providers
arm64 UEFI ISO / kernel gonix-arm64.iso ยท Image+rootfs.gz VirtualBox (Apple Silicon), QEMU (native under HVF)

GoNIX targets virtual machines and cloud instances: the kernel carries just the drivers common hypervisors need (with virtio as the fast path), everything built in, no loadable modules.

Source

Everything lives at git.mills.io/prologic/gonix โ€” the OS, the package manager, and the ports tree. Packages come from pkgs.ulinux.org.