zfs-program(8) on Solnix vs Linux and the BSDs
zfs program runs a Lua 5.2 channel program atomically against one pool. The Solnix page, the Linux page and the FreeBSD page describe the same options with the same limits (10 million instructions, 100 million maximum). The visible differences are the missing --json long option and the unit spelling.
The manual pages
- Solnix: zfs-program(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: zfs-program(8) zfs-user-2.4.4
- FreeBSD: zfs-program(8) 15.1-RELEASE
What Solnix runs
A default Solnix system runs the illumos zfs program subcommand, not a separate binary in /usr/bin, /usr/sbin or /sbin. No other illumos variants are shipped. The bundle does not say where the executable lives beyond that.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD | --json long option | Linux and FreeBSD document -j, --json. The Solnix page documents only -j and lists no long form. Scripts that use --json may not work on Solnix, because the manual does not document it.Source: Linux zfs-program(8) -j, --json; FreeBSD zfs-program(8) -j, --json; Solnix zfs-program(8) -j |
| Linux, FreeBSD | script arguments in SYNOPSIS | Linux and FreeBSD show [script arguments] in the synopsis. The Solnix synopsis ends at pool script. All three OPTIONS sections say remaining arguments are passed to the Lua script, so behaviour as documented is the same. Source: Linux zfs-program(8) SYNOPSIS; FreeBSD zfs-program(8) SYNOPSIS; Solnix zfs-program(8) SYNOPSIS, OPTIONS last paragraph |
| Linux, FreeBSD | memory limit units | Solnix gives the default and maximum memory limit as 10 MB and 100 MB. Linux and FreeBSD write 10 MiB and 100 MiB. The manual does not say whether the Solnix figures differ in size. Source: Solnix zfs-program(8) -m; Linux zfs-program(8) -m; FreeBSD zfs-program(8) -m |
| Linux, FreeBSD | LUA INTERFACE section | All three OPTIONS sections refer to a LUA INTERFACE section for passing arguments. That section is not in the bundle for any system, so differences in the zfs.* Lua library cannot be compared here. Source: Solnix, Linux and FreeBSD zfs-program(8) OPTIONS last paragraph |
| Linux, FreeBSD | same behaviour of -n, -t, root and atomicity | The three pages describe -n (read-only, no zfs.sync calls), -t (default 10 million instructions, maximum 100 million), root-only use, atomic execution and the modified Lua 5.2 interpreter in the same terms.Source: Solnix, Linux and FreeBSD zfs-program(8) DESCRIPTION, -n, -t |
| OpenBSD, NetBSD | no counterpart | The bundle has no OpenBSD or NetBSD zfs-program page, so nothing is stated about channel programs on those systems. Source: Bundle header: counterparts are linux and freebsd only |
Standards
- POSIX: zfs-program is not a POSIX.1-2024 utility.
Writing portable scripts
- Use
-jrather than--jsonif the script must run on Solnix, Linux and FreeBSD; only the short form is documented on all three. - Give
-mand-texplicit values rather than relying on defaults; the documented defaults and maxima match, but the Solnix page words the memory unit as MB, not MiB.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.