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-rngdevice. 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 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: โ
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.