Solnix is a distribution of illumos built with the Nix package manager and the NixOS module system: declarative machines, ZFS boot environments as generations, SMF instead of systemd. Atomic upgrades, instant rollback — the illumos analog of NixOS.
It's early. The first bootable image just landed — an unstable-edition
x86_64 ISO + raw disk image (v2026.08.07), preview-grade. What works today: a signed
binary cache for x86_64-solaris, aarch64-solaris, and
sparcv9-solaris, full-text
package search, and a handbook that's further along than the code.
illumos already boots and runs production machines. Solnix will let you describe one declaratively in Nix and rebuild it reproducibly. How it will work →
illumos already gives every machine atomic upgrade and instant rollback through
beadm boot environments. Solnix will map each Nix generation onto one.
How it will work →
illumos already runs services under SMF and svc.startd. Solnix will render
SMF manifests from an smf.services.* module. How it will work →
who want declarative, rollback-safe machines without hand-rolling SMF manifests and IPS packages.
who need a target that isn't Linux or Darwin, and want the same module system on a ZFS-native kernel.
who'd rather their OS upgrades were boot environments than a package transaction.
What Solnix is not: not Linux (different kernel, libc, and init); not NixOS (same Nix, different target OS); not Oracle Solaris (the open illumos branch, not Oracle's closed product).
Wifi works on the ThinkPad X1 (Intel AC 9560), packaged as Nix 2026-10-11
The X1's Intel Wireless-AC 9560 attaches, associates over WPA2/CCMP, and passes encrypted traffic both ways under Solnix — driven by a port of the OpenBSD iwm driver, packaged as a pure Nix derivation. Read more →
Two DRM drivers coexist in one illumos kernel — a graphics prerequisite, proven 2026-10-11
A correctness prerequisite for driving laptop GPUs is proven: the wifi (iwm) and Intel GPU (i915) drivers load into one running kernel at once with zero cross-wired symbols. This is a milestone, not a working desktop — the GPU does not yet drive the display. Read more →
Solnix installs on the ThinkPad X1 — a headless developer preview on real hardware 2026-10-10
Solnix installs and runs on a real Lenovo ThinkPad X1 Extreme from a USB image — a full disk install with the NixOS workflow intact (ZFS boot environments, solnix-rebuild, generations, sudo). Headless today; graphics are still in bring-up. Read more →
All news → · Atom · RSS
No install needed — boot a real Solnix
riscv64 kernel in your browser. OpenSBI → kernel → init →
a live $ shell running the actual coreutils, in a WebAssembly
RISC-V emulator. Type ls, cat /etc/release, echo hi.
Heads up: it boots the kernel's full
self-test log first, and WASM is slower than native — the $ prompt
appears after a minute or two. That's the emulator working, not hung.
announce@ and hackers@ have public archives you can
read now at lists.solnix.io (web, IMAP,
NNTP, and git). Subscribe on the community page, or
mail subscribe to the list.
Patches by email to hackers@ (a PR bridge is coming), or the
issue tracker.
See the contributing guide.
If you turn it on, your browser can share the site's static files with other visitors over WebRTC while the tab is open — origin load drops as the community grows. Off by default; peers see your IP. How it works.
| Arch | Platform tuple | Status | Cache | Packages | Phase |
|---|---|---|---|---|---|
| x86_64 (amd64) | x86_64-solaris | Primary target | live | … | 1 |
| aarch64 | aarch64-solaris | Out-of-tree illumos port exists; integrating | live | … | 3 |
| SPARC v9 (sun4v) | sparcv9-solaris | Bit-rotting in-gate; reviving with fork patches | live | … | 4 |
| RISC-V | riscv64-solaris | Kernel boots to a shell (try it in your browser); no builder/cache yet | planned | … | 5 |
Point nix at the Solnix cache and pull prebuilt store paths for every
supported architecture. Every path is signed with the cache.solnix.io-1
key and verified before use.
# /etc/nix/nix.conf substituters = https://cache.solnix.io https://cache.nixos.org trusted-public-keys = cache.solnix.io-1:8UNrVAOSOrI9PGHc8/pD2Yqp265ZeYb3OId+gv4+wm8=
Nix already trusts
cache.nixos.org by default, so you only add the Solnix key above.
Does it work? Ask the cache directly — no config needed:
nix store info --store https://cache.solnix.io
Cache objects are also distributed over BitTorrent, so bandwidth scales with the community instead of one origin's egress bill. seeding — HTTP works today and always stays the fallback; browser peer-sharing is opt-in. How it works →
Most of your instincts transfer — it's Unix, and if you know Nix the Nix half is unchanged. What's different is the substrate: a different kernel, init, filesystem, and container model. Here's the map; the full translation table goes deeper on each.
| You know (Linux / NixOS) | On Solnix (illumos) |
|---|---|
systemd — systemctl, units, journalctl | SMF — svcs, svcadm, svccfg; broken? svcs -x |
| Docker / LXC (cgroups + namespaces) | Zones (native, kernel-shared) + LX zones to run Linux binaries |
| ext4 / xfs / btrfs + LVM / mdadm | ZFS all the way down — pool + volume manager + FS in one |
strace / perf / ftrace / eBPF | DTrace — one language, kernel + userland, safe in prod (+ truss) |
apt / dnf / pacman | Nix — pkgs.solnix.*, declarative machines |
iptables / nftables, bridges, veth, tc | ipfilter (ipf) + Crossbow (dladm/ipadm/flowadm) |
| sudo, capabilities | pfexec — RBAC roles + fine-grained kernel privileges |
gdb, dmesg hardware errors | MDB (mdb) + FMA (fmadm faulty, fmdump) |
GNU ld / patchelf / ldd, glibc | Solaris link-editor (RUNPATH) + elfdump; illumos libc, not glibc |
| NixOS generations (Linux kernel) | Nix generations → ZFS boot environments (atomic upgrade, instant rollback) |
The ones that change how you think:
SMF isn't a restart loop — a failing service lands in maintenance until you
svcadm clear it. Containers are zones (Linux ELF needs an LX zone, no VM). Your
OS upgrades are ZFS — each generation is a bootable clone of root. Observability is
DTrace, and it's better than what you left. The differences that actually bite →
illumos will feel closer to home than Linux does — it's a SysV-Unix cousin with a real, coherent base system, and you already share ZFS and the bhyve/loader lineage with FreeBSD. The reflexes that differ are init, isolation, and packaging.
| You know (FreeBSD / OpenBSD / NetBSD) | On Solnix (illumos) |
|---|---|
rc.d / service / rcctl | SMF — dependency-aware, self-restarting; svcs, svcadm |
jails (FreeBSD) / vmm | Zones (the original OS container, 2005) + LX zones for Linux ABI |
| ZFS (FreeBSD) | ZFS — same lineage; illumos is where OpenZFS work lands too. Familiar. |
bhyve / FreeBSD loader | bhyve (ported from FreeBSD) + the same FreeBSD-derived loader on x86 |
| pf (packet filter) | ipfilter (ipf/ipnat) — the pre-pf IPF, still first-class here |
pkg / ports / pkg_add | Nix — declarative + reproducible; the base system is Nix-described too |
ktrace / dtrace (FreeBSD/NetBSD) | DTrace — the original, deepest implementation (illumos is its home) |
| base system = one coherent tree | same philosophy — illumos is a unified kernel+userland gate, not a distro of parts |
What's genuinely new: SMF (a real service manager, not shell rc scripts), RBAC + process privileges instead of plain root, and Nix for the whole system instead of ports/pkg. If you like BSD for its coherence, illumos keeps that and adds atomic ZFS boot environments. The full map →
Your terminal transfers — macOS is a certified Unix — and you already know DTrace (Instruments is built on it) and snapshotting storage (APFS). launchd → SMF is nearly one-to-one, and Homebrew → Nix is the big upgrade. Honest caveat: Solnix is a server/dev OS — no polished desktop yet.
| You know (macOS / Darwin) | On Solnix (illumos) |
|---|---|
launchd (launchctl, .plist) | SMF — dependency-aware supervisor + repository; svcs, svcadm |
| Homebrew / MacPorts | Nix — declarative, reproducible, whole-system (not per-package) |
| APFS + Disk Utility / Time Machine | ZFS — snapshots + send/recv, deeper than APFS; boot environments |
| dtrace / Instruments | DTrace — the original; Instruments is built on it |
| Docker Desktop (a hidden Linux VM) | Zones (native, no VM) + LX zones for Linux binaries |
pf (pfctl) / sudo | ipfilter (ipf) + pfexec (RBAC + kernel privileges) |
The honest part: macOS gives you a world-class desktop; Solnix does not, yet — it installs headless on real hardware with wifi, and a GUI is in bring-up. Great for a Unix server or a reproducible dev OS now; not a daily-driver laptop yet. The full map →
The longest trip — and we'll say so plainly. Solnix is a Unix
server/developer OS: no registry, no .exe, no Explorer desktop (yet). But if you've used
WSL, PowerShell, or Hyper-V, you already have the footholds. The core new habit:
the system is described in text and rebuilt atomically, not clicked and patched in place.
| You know (Windows) | On Solnix (illumos) |
|---|---|
Services (services.msc, sc.exe) | SMF — dependency-aware, auto-restart, queryable; svcs, svcadm |
| winget / Chocolatey / MSI + the Registry | Nix — declarative text config; no central binary hive, no installer drift |
| NTFS / Storage Spaces / Shadow Copy | ZFS — pool + FS + checksums + snapshots; boot environments for rollback |
| WSL (Linux on Windows) | LX zones (Linux binaries on the illumos kernel, no VM) |
| Hyper-V | Zones (native containers) + bhyve (full VMs) |
| Run as administrator / UAC | pfexec + RBAC roles + fine-grained kernel privileges |
| PowerShell / ETW / Perfmon | POSIX shells + DTrace (the tool ETW aspired to be) |
The honest part: Windows is a desktop OS
first; Solnix is not a desktop OS today (headless install + wifi work; a GUI is in bring-up) and has
no .exe compatibility. Choose it to learn Unix properly, run servers, or build
reproducibly — not as a Windows desktop replacement. The full
map →