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 / rcctl | SMF — dependency-aware, self-restarting; svcs, svcadm, svccfg | SMF services |
service foo status / rc debugging | svcs -x + /var/svc/log/<fmri>.log | SMF · Debugging |
jails (FreeBSD) / vmm | Zones — the original OS container (2005); LX zones for the Linux ABI | Zones · LX zones |
bhyve / FreeBSD loader | bhyve (ported from FreeBSD) + the same FreeBSD-derived loader on x86 | Boot environments |
| pf (packet filter) | ipfilter (ipf / ipnat) — the pre-pf IPF, still first-class here | Networking |
ifconfig / vlan / bridge / netgraph | Crossbow: dladm, ipadm, flowadm (VNICs, vswitches, flows in-kernel) | Networking (Crossbow) |
| ZFS (FreeBSD) | ZFS — same lineage; illumos is a primary home of OpenZFS work | ZFS storage |
UFS/FFS + gpart | ZFS pool + datasets (no separate volume manager) | ZFS storage |
pkg / ports / pkg_add / make install | Nix — pkgs.solnix.*; the base system is Nix-described too | Learning Nix |
ktrace / dtrace (FreeBSD/NetBSD) / truss | DTrace — the original, deepest implementation (illumos is its home) + truss | DTrace |
doas / sudo | pfexec — RBAC roles + fine-grained kernel privileges | see RBAC below |
gdb / kgdb / core dumps | MDB (mdb), coreadm, crash dumps | Debugging |
| base = one coherent source tree | same philosophy — illumos is a unified kernel+userland gate | How 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/zfscommands 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
- New to Nix (or coming from ports/
pkg)? Learning Nix. - Want the platform features in depth? illumos features.
- Want the backstory and the shared ZFS/OpenZFS lineage? the history.