Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

For BSD users

You come from FreeBSD, OpenBSD, NetBSD, or DragonFly BSD. Of everyone arriving at Solnix, you have the shortest trip. illumos is a System-V Unix cousin, but it shares the BSD values you already hold — one coherent base system (not a kernel plus a thousand packages), conservative engineering, and real documentation — and you literally share code: ZFS, bhyve, and the FreeBSD-derived boot loader all live on both sides of the fence. Most of what changes is init, isolation, and packaging. This page is the map; each row points at the deeper handbook chapter.

Solnix is illumos managed with Nix. If you have used pkg + ports, the mental shift is from an imperative ports tree to a declarative, reproducible build of the whole system — see Learning Nix.

The one-screen map

You know (FreeBSD / OpenBSD / NetBSD)On Solnix (illumos)Where
rc.d / service / rcctlSMF — dependency-aware, self-restarting; svcs, svcadm, svccfgSMF services
service foo status / rc debuggingsvcs -x + /var/svc/log/<fmri>.logSMF · Debugging
jails (FreeBSD) / vmmZones — the original OS container (2005); LX zones for the Linux ABIZones · LX zones
bhyve / FreeBSD loaderbhyve (ported from FreeBSD) + the same FreeBSD-derived loader on x86Boot environments
pf (packet filter)ipfilter (ipf / ipnat) — the pre-pf IPF, still first-class hereNetworking
ifconfig / vlan / bridge / netgraphCrossbow: dladm, ipadm, flowadm (VNICs, vswitches, flows in-kernel)Networking (Crossbow)
ZFS (FreeBSD)ZFS — same lineage; illumos is a primary home of OpenZFS workZFS storage
UFS/FFS + gpartZFS pool + datasets (no separate volume manager)ZFS storage
pkg / ports / pkg_add / make installNix — pkgs.solnix.*; the base system is Nix-described tooLearning Nix
ktrace / dtrace (FreeBSD/NetBSD) / trussDTrace — the original, deepest implementation (illumos is its home) + trussDTrace
doas / sudopfexec — RBAC roles + fine-grained kernel privilegessee RBAC below
gdb / kgdb / core dumpsMDB (mdb), coreadm, crash dumpsDebugging
base = one coherent source treesame philosophy — illumos is a unified kernel+userland gateHow Solnix is built

What actually feels different

You will be at home faster than a Linux refugee, but three things are genuinely new:

SMF is a real service manager, not shell rc. FreeBSD’s rc.d and OpenBSD’s rc are ordered shell scripts; SMF is a dependency-graph supervisor with a queryable repository, automatic restart, and a fault boundary. You describe smf.services.* in Nix and Solnix renders the manifests. When something breaks the reflex is svcs -x (it names the stuck dependency and its log), and a flapping service lands in maintenance rather than looping. See SMF services.

Zones predate jails’ modern form — and LX runs Linux without a VM. If you love jails, you will love zones: the same “lightweight, kernel-shared isolation” idea, shipped in 2005, with resource controls and branded-zone flexibility. A native zone runs illumos userland; to run Linux binaries you use an LX-branded zone, which presents the Linux syscall ABI on the illumos kernel — no emulation VM. On Solnix, zone tooling is early; see Zones and LX zones.

Packaging is Nix, and it describes the whole system. Ports/pkg are excellent, but they are imperative and per-package. Nix builds a reproducible closure for the entire machine — kernel, userland, services, your config — and each change is an atomic, rollback-able boot environment. It is the base-system coherence you value from BSD, made declarative. See Learning Nix.

pfexec, not doas/sudo — backed by real privileges. illumos splits “root” into dozens of fine-grained kernel privileges, and RBAC roles grant users only the profiles they need. pfexec runs a command with your authorized profiles. It is least-privilege built into the kernel, finer-grained than anything in the BSD base. This handbook uses pfexec throughout.

The things you already share (so they’re easy)

  • ZFS is the same filesystem you know; zpool/zfs commands transfer, and illumos is where much OpenZFS work originates. See ZFS storage.
  • DTrace on FreeBSD/NetBSD is a port of this; here you get the reference implementation, deepest and most complete. See DTrace.
  • bhyve and the x86 loader came from FreeBSD; the lineage is literally shared.
  • ipfilter is the IPF that predates pf — if you ever used IPF, it is still first-class here.

What Solnix is not

To keep expectations straight (full story in the history):

  • Not a BSD — it is illumos (the open OpenSolaris continuation), a System-V Unix, not a Berkeley one. The values rhyme; the kernel lineage does not.
  • Not Linux — different kernel, libc, and init.
  • Not Oracle Solaris — the open illumos branch, not Oracle’s closed product.

Where to go from here