dd(1) on Solnix vs Linux and the BSDs
On a default Solnix system, dd is the illumos /usr/bin/dd, a POSIX.1-2024 utility. The Solnix page published in the bundle is the GNU coreutils 9.7 page from pkgs.solnix.coreutils. That page documents GNU operands such as status=progress and iflag/oflag symbols, which the BSD pages mostly lack or define differently.
The manual pages
What Solnix runs
The command on PATH is the illumos /usr/bin/dd, and no other variants are shipped. The published page describes GNU coreutils 9.7 (pkgs.solnix.coreutils), and the bundle has no illumos dd text. The differences below are therefore GNU-page differences, and the bundle cannot confirm that /usr/bin/dd accepts all of them.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | same program | The Solnix page and the Linux page describe the same GNU coreutils dd, with the same operands, conv symbols and --help/--version. The Solnix page is 9.7 and the Linux page is from coreutils-full-9.11, so small version differences exist.Source: Solnix dd(1) footer (GNU coreutils 9.7); Linux dd(1) header (coreutils-full-9.11), DESCRIPTION |
| Linux | statistics signal | The Solnix page says sending an INFO signal makes a running dd print I/O statistics and resume copying. The Linux page says USR1. A script that sends USR1 for progress is documented for Linux only. Source: Solnix dd(1) DESCRIPTION (INFO signal); Linux dd(1) DESCRIPTION (USR1 signal) |
| Linux | iflag symbols | The Solnix page lists the iflag/oflag symbol nolinks (fail if multiply-linked) and does not list noatime. The Linux page lists noatime (do not update access time) and does not list nolinks. Source: Solnix dd(1) FLAG symbols (nolinks); Linux dd(1) FLAG symbols (noatime) |
| FreeBSD, OpenBSD, NetBSD | GNU-style options and size suffixes | The Solnix page documents --help and --version, and size suffixes on N and BYTES (c, w, b, kB, K, MB, M, GB, G and so on, and a trailing B to count bytes). The FreeBSD, OpenBSD and NetBSD synopses list only operands.Source: Solnix dd(1) DESCRIPTION (suffix paragraph, Options are); FreeBSD/OpenBSD/NetBSD dd(1) SYNOPSIS |
| OpenBSD, NetBSD | status=progress | Solnix status= accepts none, noxfer and progress (periodic statistics). OpenBSD documents only noxfer and none. NetBSD documents progress=n as a separate operand that prints a dot every n blocks, and msgfmt= for the summary format. Source: Solnix dd(1) status=LEVEL; OpenBSD dd(1) status=value; NetBSD dd(1) progress=n, msgfmt=fmt |
| FreeBSD | status=progress wording | FreeBSD status=progress prints basic transfer statistics once per second. The Solnix page says only periodic transfer statistics, with no interval stated. Source: FreeBSD dd(1) status=value progress; Solnix dd(1) status=LEVEL |
| NetBSD | iflag and oflag meaning | On NetBSD, iflag and oflag are comma-separated open(2) flags. oflag defaults to creat, and creat must be listed explicitly to write a new file. On Solnix they are GNU symbols such as direct, dsync, append and nofollow, and the page names no default. Source: NetBSD dd(1) iflag=flags, oflag=flags; Solnix dd(1) FLAG symbols |
| FreeBSD | iflag and oflag symbols | FreeBSD iflag takes fullblock and direct. oflag takes fsync, sync and direct. Solnix lists many more symbols, including append, directory, dsync, nonblock, nocache, noctty, nofollow and nolinks. Source: FreeBSD dd(1) iflag=value, oflag=value; Solnix dd(1) FLAG symbols |
| FreeBSD, OpenBSD, NetBSD | short reads and bs= | The BSD pages say short input reads are aggregated into full output blocks. With bs= and only noerror, notrunc or sync conversions, each input block is copied as is. The Solnix page offers iflag=fullblock to accumulate blocks and does not describe default aggregation. Source: FreeBSD/OpenBSD/NetBSD dd(1) DESCRIPTION and bs=n; Solnix dd(1) bs=BYTES, iflag fullblock |
| FreeBSD, OpenBSD, NetBSD | files= for tapes | FreeBSD, OpenBSD and NetBSD have files=n, which copies n input files and applies only to tape input. The Solnix page has no files= operand. Source: FreeBSD/OpenBSD/NetBSD dd(1) files=n; Solnix dd(1) DESCRIPTION |
| FreeBSD | fillchar and speed | FreeBSD dd has fillchar=c (pad character instead of space or NUL) and speed=n (limit in bytes per second). The Solnix page documents neither operand. Source: FreeBSD dd(1) fillchar=c, speed=n; Solnix dd(1) DESCRIPTION |
| OpenBSD | conv=osync | OpenBSD conv=osync pads the final output block to the full output block size, and is incompatible with bs=. The Solnix conv list has no osync. Its sync pads every input block to ibs-size. Source: OpenBSD dd(1) conv osync; Solnix dd(1) CONV symbols (sync) |
| FreeBSD, NetBSD | old conversion maps | FreeBSD and NetBSD accept oldascii, oldebcdic and oldibm, historic conversion maps. The Solnix page lists only ascii, ebcdic and ibm. Source: FreeBSD dd(1) conv ascii, oldascii; NetBSD dd(1) conv ascii, oldascii; Solnix dd(1) CONV symbols |
Standards
- POSIX: dd is a POSIX.1-2024 utility.
Writing portable scripts
- Stick to if=, of=, bs=, count=, skip=, seek= and conv=notrunc,noerror,sync. These appear in every page in the bundle. Avoid status=progress, iflag/oflag symbols and size suffixes in portable scripts.
- Do not rely on a signal for progress: the Solnix page names INFO and the Linux page names USR1.
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.