Why GoNIX?
Most operating systems are a patchwork of C accreted over decades. GoNIX asks a simpler question: what if the userspace were one small, memory-safe, statically-linked language? That language is Go.
The thesis
The Linux kernel is excellent and GoNIX keeps it. Everything above the kernel — the part you actually interact with and maintain — is where GoNIX diverges:
- PID 1 is Go.
initdoesswitch_root, mounts, device setup, networking, service supervision, gettys and shutdown — no shell-script init, no separate service manager. - The userland is one Go binary. A busybox-style
coreutilsis symlinked under dozens of names; each applet is a small Go program. - The network, devices, and SSH are Go. DHCP and netlink, udev-style device nodes, and an integrated SSH server — standard library and a handful of dependencies, not a pile of daemons.
The payoff is a base system you can read end to end in an afternoon, that is
memory-safe by default, and that cross-compiles to a static image with
CGO_ENABLED=0.
Pragmatic about C
GoNIX isn’t dogmatic. Browsers, the Wayland compositor, and system libraries are C, and rewriting them would be silly. So GoNIX builds them from source against musl, every piece tracked as a package. The line is drawn at the base system: that’s Go; the ecosystem is whatever serves you best.
Lineage: the uLinux foundation
GoNIX grew out of uLinux — a micro, cloud-native Linux
— and inherited its CRUX-style ports and build lineage. Today uLinux is the
foundation: the ports tree, the pkg package manager, and the package
ecosystem at pkgs.ulinux.org. GoNIX is the operating
system built on top of it. One supplies the parts; the other is the thing you
run.
What it’s for
- A legible OS you can understand and modify without spelunking through decades of C.
- A minimal server that boots fast and ships a tiny attack surface — this site is served from a GoNIX VM.
- A Go systems-programming playground where the whole userspace is hackable in one language.
GoNIX is not trying to replace your daily driver distro. It’s a demonstration that a coherent, Go-first UNIX is not only possible but pleasant.