mknod(8) on Solnix vs Linux and the BSDs
On Solnix, mknod is the illumos /usr/sbin/mknod. It takes no options: only `name b major minor`, `name c major minor` or `name p`. Linux and OpenBSD/NetBSD have -m for the mode, and the Linux page has a different synopsis (TYPE first-class, section 1) and a u type.
The manual pages
What Solnix runs
A default Solnix system runs the illumos mknod at /usr/sbin/mknod. No other variants are shipped. The Solnix page recommends a symbolic link to the physical name under /devices instead of mknod where possible.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, OpenBSD, NetBSD | -m mode option | Solnix mknod documents no options, so no way to set the mode. Linux (-m, --mode), OpenBSD (-m) and NetBSD (-m) set permission bits at creation. Linux, OpenBSD and NetBSD default to a=rw (Linux: a=rw minus umask); the Solnix page states no default.Source: Solnix mknod(8) SYNOPSIS, OPTIONS; Linux mknod(1) -m; OpenBSD mknod(8) -m; NetBSD mknod(8) -m |
| Linux | manual section and argument order | Solnix mknod is in section 8 and takes the form `mknod name b|c major minor` or `name p`, with no options. The Linux page documents `mknod [OPTION]... NAME TYPE [MAJOR MINOR]`, adds the `u` type as a synonym for c, and has --help and --version.Source: Solnix mknod(8) SYNOPSIS; Linux mknod(1) SYNOPSIS, TYPE |
| all four | number formats | The Solnix page says only that minor can be decimal or octal. Linux accepts 0x/0X hexadecimal, octal and decimal; FreeBSD, OpenBSD and NetBSD accept any strtoul(3) format, including a leading 0x. Hex numbers are not documented for Solnix. Source: Solnix mknod(8) OPERANDS minor; Linux mknod(1) DESCRIPTION; FreeBSD mknod(8) DESCRIPTION; OpenBSD mknod(8) minor; NetBSD mknod(8) minor |
| all four | superuser requirement | The Solnix page says you must be the super-user to use the device form (b or c). The Linux, FreeBSD, OpenBSD and NetBSD pages in the bundle do not state this requirement. Source: Solnix mknod(8) OPERANDS minor; Linux/FreeBSD/OpenBSD/NetBSD mknod pages (no such statement) |
| FreeBSD | owner:group and no-argument form | FreeBSD accepts an optional owner:group operand pair and, with only a name, recreates a deleted node under devfs(4). The FreeBSD page calls mknod deprecated and the chown-like operand FreeBSD-specific. Solnix has neither form. Source: FreeBSD mknod(8) SYNOPSIS, DESCRIPTION, COMPATIBILITY; Solnix mknod(8) SYNOPSIS |
| FreeBSD | FIFOs | The FreeBSD mknod synopsis has no p type (its SEE ALSO points to mkfifo(1)). Solnix mknod name p creates a FIFO. Source: FreeBSD mknod(8) SYNOPSIS, SEE ALSO; Solnix mknod(8) OPTIONS p |
| NetBSD | ownership, replacement, driver names and format | NetBSD adds -u uid, -g gid, -r and -R (replace an existing file of wrong type), -l (list drivers) and -F fmt (device-number packing, including solaris). It also accepts driver names and a unit/subunit form. None of these appear in the Solnix page.Source: NetBSD mknod(8) SYNOPSIS, -F, -g, -l, -r, -R, -u; Solnix mknod(8) SYNOPSIS |
| OpenBSD | multiple nodes per call | OpenBSD mknod accepts several parameter lists in one invocation, and -m applies to all of them. The Solnix synopsis shows a single name per call.Source: OpenBSD mknod(8) STANDARDS; Solnix mknod(8) SYNOPSIS |
| FreeBSD | device nodes in regular file systems | FreeBSD documents that device nodes are managed by devfs(4) and that nodes created in regular file systems cannot be used to access devices. Solnix documents that the kernel interprets major/minor numbers and prefers symlinks into /devices. Source: FreeBSD mknod(8) COMPATIBILITY; Solnix mknod(8) NOTES |
Standards
- POSIX: mknod is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not rely on mknod for portable scripts: options (
-m,-u,-g,-F) and operand forms differ on every system. Use mkfifo(1) for FIFOs where available. - If you need a specific mode, run chmod after mknod instead of using
-m, which Solnix does not document.
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.