A UNIX with a Go userspace

A UNIX-like operating system on the Linux kernel, with the userspace — init, coreutils, networking, services and SSH — written mostly in Go.

Go all the way down

PID 1, a busybox-style coreutils, the network stack, device management and an integrated SSH server — written in Go. One small, statically-linked language for the whole base system.

Packaged from source

A Go package manager, pkg, with a binary repository and a from-source build of its entire library stack — no vendored closure. pkg install resolves deps, verifies checksums, and upgrades a running system in place.

Desktop and server

Boots to a tidy server — the Go userspace comes up in ~20 ms, faster than you can blink — or to a full Wayland desktop (labwc, from source, no Mesa). Runs under QEMU, on real clouds, and is dogfooded serving this very site.

What it is

GoNIX boots a recent Linux kernel and hands off to a Go init as PID 1. From there the system is almost entirely Go: a single multi-call coreutils binary symlinked under dozens of names, DHCP + netlink networking, udev-style device management, service supervision, gettys, and an SSH server — no BusyBox, no Dropbear, no shell-script init.

Where C is unavoidable (libraries, the compositor, browsers), GoNIX builds it from source against musl, tracked as packages in its own pkg system. The result is a coherent, auditable base you can read end to end.

$ ssh root@gonix.dev
GoNIX (a UNIX-like OS with a Go userspace)
$ pkg install htop
$ uname -sm
Linux x86_64

Two architectures

amd64 and arm64, at package parity. Native-fast under QEMU on Apple Silicon.

A real package ecosystem

Browsers, editors, a C/Go toolchain, daemons (cron, syslog, SMTP) — installable from pkgs.ulinux.org, the uLinux package foundation GoNIX is built on.

Small and legible

A minimal kernel, a Go userspace you can actually read, and a build system that fits in a few shell scripts and a Dockerfile.

From PID 1 to a login prompt in ~20 ms

The Go init mounts the filesystems, scans devices, brings up the network and launches every service in about a fiftieth of a second — five times faster than a blink. No initramfs copy, no shell-script init, no waiting: you’re at a shell before the console finishes scrolling.

Boot it yourself