Quick start
GoNIX boots a live image directly — no installer. Grab a prebuilt image and go. Pick your platform:
QEMU on x86-64
$ curl -LO https://pkgs.ulinux.org/images/gonix-amd64.iso
$ qemu-system-x86_64 -m 1G -cdrom gonix-amd64.iso \
-device virtio-rng-pci \
-nic user,hostfwd=tcp::2222-:22
$ ssh -p 2222 root@localhost # password: gonix
The Go userspace is at a login prompt in ~20 ms — faster than you can blink.
QEMU on arm64 (Apple Silicon)
The fastest arm64 path is the bare kernel + initramfs, booted natively under HVF:
$ curl -LO https://pkgs.ulinux.org/images/gonix-arm64-Image
$ curl -LO https://pkgs.ulinux.org/images/gonix-arm64-rootfs.gz
$ qemu-system-aarch64 -machine virt,accel=hvf -cpu host -m 1G \
-kernel gonix-arm64-Image -initrd gonix-arm64-rootfs.gz \
-device virtio-rng-pci \
-nic user,hostfwd=tcp::2222-:22 -nographic
$ ssh -p 2222 root@localhost
The virtio-rng device seeds the kernel CRNG so the SSH host key can be
generated at boot — see the VirtualBox tab for what happens without one.
VirtualBox on Apple Silicon
GoNIX also ships a UEFI-bootable arm64 ISO. In VirtualBox 7.1+ create an ARM 64-bit VM, attach the ISO, and boot — you log in at the VM console window.
https://pkgs.ulinux.org/images/gonix-arm64.iso
A few VirtualBox-on-ARM specifics:
- Give the VM a USB keyboard and USB mouse with a USB controller enabled —
the ARM platform has no PS/2 controller, so VirtualBox’s default PS/2 input
never reaches the guest and the console won’t accept keystrokes. Enable a USB
controller (xHCI) under the VM’s USB settings, then:
VBoxManage modifyvm <vm> --keyboard usb --mouse usb --usbxhci on. Use a relative USB mouse (--mouse usb), not the absolute USB tablet: VirtualBox’s ARM target doesn’t deliver the tablet’s absolute coordinates, so “Mouse Integration” stays greyed out and the desktop (startgui) cursor won’t move. With a relative mouse the cursor is captured into the window instead — release it with the Host key. - Set the network adapter to Intel PRO/1000 (e1000) — VirtualBox’s ARM virtio-net is unreliable; GoNIX’s kernel drives e1000.
- If a reboot shows “No bootable option or device was found”, reset the VM’s
UEFI variable store (
VBoxManage modifynvram <vm> inituefivarstore) — a quirk of VirtualBox’s preview ARM firmware, not the ISO. - Log in at the console window. SSH-over-NAT does not work yet: VirtualBox’s ARM preview exposes no random-number source, so the kernel can’t seed enough entropy to generate an SSH host key (see the note below). The console is fully functional.
For a full SSH-reachable arm64 box, use QEMU + UEFI firmware (edk2/AAVMF), which provides a virtio-rng device:
$ curl -LO https://pkgs.ulinux.org/images/gonix-arm64.iso
$ qemu-system-aarch64 -machine virt,accel=hvf -cpu host -m 1G \
-drive if=pflash,format=raw,readonly=on,file=edk2-aarch64-code.fd \
-cdrom gonix-arm64.iso -device virtio-gpu-pci -device virtio-rng-pci \
-nic user,hostfwd=tcp::2222-:22
$ ssh -p 2222 root@localhost
Note — environments without a hardware RNG. GoNIX relies on the kernel CRNG being seeded at boot, which on a VM means the hypervisor exposing an entropy source (a
virtio-rngdevice, an EFI RNG, or a CPU RNG instruction). QEMU/KVM and cloud providers all do; VirtualBox’s experimental ARM target does not. Without one, the CRNG never initialises, so anything needing secure randomness (the SSH host key, TLS) blocks — the console still works. Always give arm64 VMs avirtio-rngdevice where you can.
Any cloud with custom-ISO boot
GoNIX boots the live ISO directly — no install-to-disk — so the instance’s disk is free for your data. Point your provider at the public ISO URL:
https://pkgs.ulinux.org/images/gonix-amd64.iso
On first boot, GoNIX’s cloud-init pulls your SSH key and hostname from the provider’s metadata service (NoCloud and Vultr are supported today), so you land on a configured server with nothing baked in.
Vultr, declaratively
resource "vultr_iso_private" "gonix" {
url = "https://pkgs.ulinux.org/images/gonix-amd64.iso"
}
resource "vultr_instance" "gonix" {
region = "sgp"
plan = "vc2-1c-1gb"
hostname = "gonix"
iso_id = vultr_iso_private.gonix.id
}
terraform apply, and Vultr fetches the ISO and boots it. This very site runs
exactly this way — the GoNIX repo has the
full cloud-init-driven deploy (site + Let’s Encrypt TLS, reproducible from
terraform apply alone).
Once you’re in, try pkg install htop and poke around. The
Download page has checksums, per-commit archives, and the
from-source build.