uname(1) on Solnix vs Linux and the BSDs
On Solnix, uname is the illumos uname, found at /usr/bin/uname and /sbin/uname. It has two options the other systems lack: -S sets the nodename and -X prints SCO-style expanded output. Solnix also discourages -m in favour of -p, which differs from the usual meaning of -m elsewhere.
The manual pages
- Solnix: uname(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: uname(1) coreutils-full-9.11
- FreeBSD: uname(1) 15.1-RELEASE
- OpenBSD: uname(1) 8.0
- NetBSD: uname(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
uname
What Solnix runs
A default Solnix system runs the illumos uname at /usr/bin/uname and /sbin/uname. No other variants are shipped. The page comes from pkgs.solnix.illumos-world-man.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | -S sets the nodename | Solnix uname -S system_name changes the nodename. Only the super-user may do it, and it does not persist across reboots. The Linux, FreeBSD, OpenBSD and NetBSD pages document no option that sets anything.Source: Solnix uname(1) SYNOPSIS, -S; Linux, FreeBSD, OpenBSD, NetBSD uname(1) SYNOPSIS |
| all four | -X expanded output | Solnix uname -X prints one element per line in the format SCO UNIX expects: system name, node, release, version, machine, CPU count, and more. BusType, Serial and Users are set to "unknown". None of the other pages document -X.Source: Solnix uname(1) -X; Linux, FreeBSD, OpenBSD, NetBSD uname(1) SYNOPSIS |
| FreeBSD, OpenBSD | -m versus -p | Solnix calls -m "machine hardware name (class)", discourages it, and says to use -p for the ISA or processor type. FreeBSD -m is the hardware platform and -p the processor architecture. OpenBSD -m is the kernel architecture and -p the application architecture.Source: Solnix uname(1) -m, -p, NOTES; FreeBSD uname(1) -m, -p; OpenBSD uname(1) -m, -p |
| all four | -i meaning | Solnix -i prints the platform name. Linux -i prints the hardware platform and marks it non-portable. FreeBSD -i prints the kernel ident. The OpenBSD and NetBSD pages have no -i.Source: Solnix uname(1) -i; Linux uname(1) -i, --hardware-platform; FreeBSD uname(1) -i; OpenBSD and NetBSD uname(1) SYNOPSIS |
| OpenBSD, NetBSD | -o | Solnix -o prints the name of the kernel/OS. Linux -o prints the operating system, and FreeBSD -o is a synonym for -s. The OpenBSD and NetBSD pages have no -o, so scripts using it fail there.Source: Solnix uname(1) -o; Linux uname(1) -o; FreeBSD uname(1) -o; OpenBSD and NetBSD uname(1) SYNOPSIS |
| all four | what -a prints | The Solnix page says -a prints "basic information currently available" and lists no fields. FreeBSD, OpenBSD and NetBSD define -a as -m -n -r -s -v. Linux omits -p and -i if unknown. Do not parse -a output by position.Source: Solnix uname(1) -a; FreeBSD uname(1) -a; OpenBSD uname(1) -a; NetBSD uname(1) -a; Linux uname(1) -a |
| FreeBSD | FreeBSD-only flags and environment | FreeBSD has -b (kernel build-id), -K (kernel version) and -U (user-environment version). Setting UNAME_ followed by a flag letter overrides the value. The Solnix page documents none of these.Source: FreeBSD uname(1) -b, -K, -U, ENVIRONMENT; Solnix uname(1) ENVIRONMENT VARIABLES |
| Linux | long options | Linux (GNU coreutils) accepts long options such as --kernel-name, --nodename, --kernel-release, --machine, plus --help and --version. The Solnix synopsis lists only single-letter options.Source: Linux uname(1) DESCRIPTION; Solnix uname(1) SYNOPSIS |
| OpenBSD | release string format | Solnix warns that release levels may be x.y.z (such as 5.5.1), not only x.y, so scripts must not assume two fields. OpenBSD documents the -r format as digit.digit.Source: Solnix uname(1) NOTES; OpenBSD uname(1) -r |
| FreeBSD, OpenBSD | multi-option output layout | FreeBSD and OpenBSD print all selected fields on one line separated by spaces when -a or several options are given. The Solnix page does not describe the layout of multi-option output, except that -X uses one element per line.Source: FreeBSD uname(1) DESCRIPTION; OpenBSD uname(1) DESCRIPTION; Solnix uname(1) OPTIONS |
| FreeBSD | arch and platform detection | Solnix NOTES say uname -sp gives hardware platform information and uname -sr gives OS name and release. It says arch -k and uname -m return equivalent values, and third-party programs should avoid both.Source: Solnix uname(1) NOTES |
Standards
- POSIX: uname is a POSIX.1-2024 utility.
- Solnix: Interface Stability: Standard.
- FreeBSD: The uname command is expected to conform to the IEEE Std 1003.2 (“POSIX.2”) specification.
- OpenBSD: The uname utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flag
-pis an extension to that specification. - NetBSD: The uname utility conforms to IEEE Std 1003.2-1992 (“POSIX.2”). The
-poption is an extension to the standard.
Writing portable scripts
- Stick to
-s,-n,-r,-vand-awithout parsing its fields. These are documented on all five systems. Avoid-i,-o,-mand-pfor portable logic, since they mean different things or are missing. - Do not assume the release string is x.y. Solnix says it could be x.y.z.
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.