limit(1) on Solnix vs Linux and the BSDs
On Solnix, limit, unlimit and ulimit are shell built-ins, not separate programs, and one page covers sh, csh, ksh and ksh93. The syntax depends on the shell: csh uses limit/unlimit with named resources, while sh, ksh and ksh93 use ulimit with single-letter flags. The bundle has no usable limit text from FreeBSD or NetBSD.
The manual pages
- Solnix: limit(1) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: limit(1) 15.1-RELEASE
- NetBSD: limit(1) 11.0
What Solnix runs
A default Solnix system has no limit binary on PATH. limit and unlimit are csh built-ins, and ulimit is built into sh, ksh and ksh93. The page also documents /usr/bin/ulimit [-f] [blocks], which only sets or reports the file-size limit. The bundle has no Linux or OpenBSD counterpart page, so nothing is claimed about them.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD | what the counterpart page is | FreeBSD's limit(1) page is the builtin(1) index of shell built-ins. It has no limit syntax, options or resource names, so no flag comparison is possible from the bundle. It lists limit and unlimit as csh-only and ulimit as sh-only. Source: FreeBSD limit(1) (builtin) Commands table rows limit, unlimit, ulimit; Solnix limit(1) SYNOPSIS |
| NetBSD | what the counterpart page is | NetBSD's limit(1) page is the csh(1) manual. The bundle excerpt ends before any limit or unlimit section, so the manual text shown does not say how NetBSD's limit options or resource names compare. Source: NetBSD limit(1) (csh) NAME, SYNOPSIS; Solnix limit(1) csh |
| FreeBSD | which shell has which command | On FreeBSD, ulimit is a built-in of sh only and limit/unlimit are csh only. Solnix documents ulimit in sh, ksh and ksh93, and limit/unlimit in csh. Solnix also documents a /usr/bin/ulimit utility, while FreeBSD marks ulimit as an external script (No*).Source: FreeBSD limit(1) (builtin) table, ulimit row and No* note; Solnix limit(1) SYNOPSIS (/usr/bin/ulimit, sh, csh, ksh, ksh93) |
| FreeBSD, NetBSD | default resource when none is named | On Solnix, ulimit with no resource flag acts on the file size limit (-f) in sh, ksh and ksh93. /usr/bin/ulimit handles only file size. The FreeBSD and NetBSD texts in the bundle do not state a default.Source: Solnix limit(1) sh DESCRIPTION, ksh and ksh93 (default -f), /usr/bin/ulimit; FreeBSD and NetBSD pages silent |
| FreeBSD, NetBSD | hard and soft limit defaults | Solnix sh ulimit with neither -H nor -S sets both limits and prints the soft limit. ksh93 lists the soft limit (-S) and sets both. A script that relies on these defaults is checkable only against Solnix; the BSD texts here do not document them.Source: Solnix limit(1) sh (-H, -S) and ksh93 (-H or -S paragraph); FreeBSD and NetBSD pages silent |
| FreeBSD, NetBSD | units of limit values | On Solnix, ulimit -c and -f count 512-byte blocks, while -d, -s and -v count Kbytes and -t counts seconds. In ksh93, -c and -f are blocks and -b and -p are bytes. The BSD pages in the bundle give no units.Source: Solnix limit(1) sh -c -d -f -s -t -v; ksh93 -b -c -f -p |
| FreeBSD, NetBSD | ksh93 extra resources and long options | Solnix ksh93 ulimit adds -b, -L, -l, -M, -m, -p, -T and -u, with GNU-style names such as --nofile, --nproc, --threads and --as. The sh ulimit accepts only -c, -d, -f, -n, -s, -t and -v. These are not in the BSD texts shown.Source: Solnix limit(1) ksh93 options list; sh synopsis |
| FreeBSD, NetBSD | csh limit names and scaling | Solnix csh limit takes resource names: cputime, filesize, datasize, stacksize, coredumpsize, descriptors, memorysize. Values default to kilobytes except cputime, which accepts nh, nm and mm:ss. unlimit removes a limit, and -h applies to hard limits.Source: Solnix limit(1) csh resource list, limit scaling, unlimit -h; FreeBSD limit(1) table lists limit and unlimit as csh built-ins |
| FreeBSD, NetBSD | csh descriptors and stack notes | The Solnix csh page says the default stack size is 2^64 and that descriptors maximums come from sysdef(8), reported in hexadecimal. The page also says datasize, stacksize and heapsize are not system tunables. The BSD texts in the bundle say nothing comparable. Source: Solnix limit(1) csh stacksize, descriptors; Per-Shell Memory Parameters |
Everyday tasks
| Task | Solnix | FreeBSD |
|---|---|---|
| show all resource limits | ulimit -a (sh, ksh, ksh93); limit (csh) | limit (csh built-in); ulimit is an sh built-in, flags not in bundle |
| remove a limit | unlimit [-h] [resource] (csh); ulimit with the value unlimited (sh, ksh, ksh93) | unlimit (csh built-in) |
Standards
- POSIX: limit is not a POSIX.1-2024 utility, per the bundle header.
- Solnix: The part of the Solnix page in the bundle states no standards or interface stability.
Writing portable scripts
- Do not assume one syntax: csh uses limit and unlimit with names like descriptors, while sh and ksh use ulimit with letters such as
-n. Pick the form for the shell that runs the script. - Use only ulimit
-c,-d,-f,-n,-s,-tand-vfor sh scripts on Solnix, and set-Hor-Sexplicitly instead of relying on the default of setting both.
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.