os-test
os-test is a set of test suites for POSIX operating systems designed to make it easy to compare differences between operating systems and to find operating system bugs. It consists of test suites that focus on different operating system areas.
This page visualizes the results for the POSIX operating systems that are relevant today.
os-test has been generously funded by the Next Generation Internet Zero Commons fund managed by the NLnet Foundation.
Source Code
The os-test source code is available on gitlab. You also can view the source code for each test by clicking the test title in the leftmost entry of each row. os-test is licensed under the ISC license, see the LICENSE file in the source code for details.
Please feel free to contribute more tests and suites and I'll be happy to run them on every operating system and publish the data.
Setup
I run os-test on my host Linux system; AIX, macOS, and Solaris are graciously provided by cfarm; and the rest of the systems run in qemu virtual machines. The testing harness connects to each machine over ssh and runs tests there. The systems are:
- AIX
- DragonFly
- FreeBSD
- Haiku
- Hurd
- Linux
- macOS
- Minix
- NetBSD
- OmniOS
- OpenBSD
- Solaris
- Sortix
I'm still looking for access to Integrity, LynxOS, HP-UX, OpenServer, QNX, UnixWare, VxWorks, and z/OS systems, or any other relevant maintained POSIX systems with a sshd port. Please get in touch if you can help.
Legend
This page is an overview of the test results from the contained suites.
Each cell contains the percentage scores of the test results for a operating system on a suite, along with the number of good test results and the total number of non-neutral test results. Test outcomes that are unknown, neutral, or otherwise non-good and non-bad are not counted.
Click on the the percentages to explore the detailed suite test results.
If the cell scored any partial test outcomes, then a smaller alternate percentage is shown beneath, showing what the score would have been if the following minor problems had not occurred:
- extension - The POSIX feature macro values did not work, but implementation-specific feature macros did work. This outcome typically indicates a recently standardized feature.
- previous_posix - The latest POSIX feature macro values did not work, but the previous values worked. This outcome indicates the headers are not forward compatible with new standards.
The table is sliced into the mandatory POSIX section, and a section for each applicable optional part of POSIX. Each table section is headed by an overall score for the option if multiple suites cover that option.
Suites
os-test contains the following suites:
- include - This suite tests whether headers include the correct declarations.
- io - This suite tests input/output system calls.
- malloc - This suite tests memory allocation.
- process - This suite tests process system calls.
- pty - This suite tests pseudoterminals.
- signal - This suite tests signal system calls.
- udp - This suite tests the UDP stack.
Results
aix AIX 3 00F9C1964C00 |
dragonfly DragonFly 6.4-RELEASE x86_64 |
freebsd FreeBSD 14.3-RELEASE-p2 amd64 |
haiku Haiku 1 x86_64 |
hurd GNU 0.9 i686-AT386 |
linux Linux 6.12.38+deb13-amd64 x86_64 |
macos Darwin 24.3.0 arm64 |
minix Minix 3.4.0 i386 |
musl Linux 6.12.34-0-lts x86_64 |
netbsd NetBSD 10.1 amd64 |
omnios SunOS 5.11 i86pc |
openbsd OpenBSD 7.7 amd64 |
solaris SunOS 5.11 sun4v |
sortix Sortix 1.1.0-dev x86_64 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
§ overall | aix: 91% (2950/3223) |
dragonfly: 89% (2875/3228) ~ 91% = +2% (91) as extension |
freebsd: 90% (2927/3238) ~ 92% = +2% (73) as extension |
haiku: 89% (2892/3227) ~ 89% = +0% (12) as extension |
hurd: 91% (2950/3233) ~ 93% = +2% (73) as extension |
linux: 93% (3004/3223) ~ 95% = +2% (85) as extension |
macos: 86% (2793/3222) ~ 88% = +1% (49) as extension |
minix: 75% (2441/3218) ~ 79% = +3% (116) as extension |
musl: 95% (3087/3224) ~ 96% = +0% (19) as extension |
netbsd: 88% (2877/3240) ~ 90% = +2% (66) as extension |
omnios: 93% (3019/3226) ~ 95% = +1% (58) as extension |
openbsd: 85% (2774/3240) ~ 86% = +0% (22) as extension |
solaris: 83% (2684/3232) ~ 93% = +1% (35) as extension +9% (309) as previous_posix |
sortix: 83% (2688/3226) ~ 83% = +0% (13) as extension |
§ include | aix: 92% (2775/2985) |
dragonfly: 90% (2697/2985) ~ 93% = +3% (91) as extension |
freebsd: 92% (2752/2985) ~ 94% = +2% (73) as extension |
haiku: 90% (2712/2985) ~ 91% = +0% (12) as extension |
hurd: 92% (2773/2985) ~ 95% = +2% (73) as extension |
linux: 93% (2784/2985) ~ 96% = +2% (85) as extension |
macos: 87% (2585/2969) ~ 88% = +1% (49) as extension |
minix: 77% (2303/2985) ~ 81% = +3% (116) as extension |
musl: 96% (2867/2985) ~ 96% = +0% (19) as extension |
netbsd: 90% (2699/2985) ~ 92% = +2% (66) as extension |
omnios: 93% (2800/2985) ~ 95% = +1% (58) as extension |
openbsd: 87% (2598/2985) ~ 87% = +0% (22) as extension |
solaris: 83% (2498/2985) ~ 95% = +1% (35) as extension +10% (309) as previous_posix |
sortix: 83% (2500/2985) ~ 84% = +0% (13) as extension |
§ io | aix: 36% (20/55) |
dragonfly: 32% (18/55) |
freebsd: 38% (21/55) |
haiku: 40% (22/55) |
hurd: 36% (20/55) |
linux: 96% (53/55) |
macos: 94% (52/55) |
minix: 29% (16/55) |
musl: 96% (53/55) |
netbsd: 36% (20/55) |
omnios: 98% (54/55) |
openbsd: 36% (20/55) |
solaris: 36% (20/55) |
sortix: 41% (23/55) |
§ malloc | aix: 66% (2/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 100% (3/3) |
linux: 100% (3/3) |
macos: 100% (3/3) |
minix: 100% (3/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 100% (3/3) |
openbsd: 100% (3/3) |
solaris: 100% (3/3) |
sortix: 100% (3/3) |
§ process | aix: 100% (20/20) |
dragonfly: 100% (20/20) |
freebsd: 100% (20/20) |
haiku: 65% (13/20) |
hurd: 95% (19/20) |
linux: 100% (20/20) |
macos: 100% (20/20) |
minix: 20% (4/20) |
musl: 100% (20/20) |
netbsd: 95% (19/20) |
omnios: 100% (20/20) |
openbsd: 100% (20/20) |
solaris: 100% (20/20) |
sortix: 100% (20/20) |
§ pty | aix: 87% (21/24) |
dragonfly: 91% (22/24) |
freebsd: 91% (22/24) |
haiku: 70% (17/24) |
hurd: 66% (16/24) |
linux: 86% (20/23) |
macos: 95% (23/24) |
minix: 41% (10/24) |
musl: 86% (20/23) |
netbsd: 91% (22/24) |
omnios: 83% (20/24) |
openbsd: 87% (21/24) |
solaris: 87% (21/24) |
sortix: 95% (22/23) |
§ signal | aix: 77% (24/31) |
dragonfly: 83% (26/31) |
freebsd: 83% (26/31) |
haiku: 100% (31/31) |
hurd: 87% (27/31) |
linux: 93% (29/31) |
macos: 77% (24/31) |
minix: 64% (20/31) |
musl: 93% (29/31) |
netbsd: 100% (31/31) |
omnios: 100% (31/31) |
openbsd: 93% (29/31) |
solaris: 100% (31/31) |
sortix: 100% (31/31) |
§ udp | aix: 83% (88/105) |
dragonfly: 80% (89/110) |
freebsd: 69% (83/120) |
haiku: 86% (94/109) |
hurd: 80% (92/115) |
linux: 89% (95/106) |
macos: 71% (86/120) |
minix: 85% (85/100) |
musl: 88% (95/107) |
netbsd: 68% (83/122) |
omnios: 84% (91/108) |
openbsd: 68% (83/122) |
solaris: 79% (91/114) |
sortix: 81% (89/109) |
Optional: ADV Advisory Information |
||||||||||||||
§ include | aix: 100% (21/21) |
dragonfly: 100% (21/21) |
freebsd: 100% (21/21) |
haiku: 100% (21/21) |
hurd: 100% (21/21) |
linux: 100% (21/21) |
macos: 61% (13/21) |
minix: 80% (17/21) |
musl: 100% (21/21) |
netbsd: 95% (20/21) |
omnios: 100% (21/21) |
openbsd: 61% (13/21) |
solaris: 28% (6/21) ~ 100% = +71% (15) as previous_posix |
sortix: 23% (5/21) |
Optional: CD C-Language Development Utilities |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 100% (1/1) |
Optional: CPT Process CPU-Time Clocks |
||||||||||||||
§ include | aix: 100% (4/4) |
dragonfly: 100% (4/4) |
freebsd: 100% (4/4) |
haiku: 100% (4/4) |
hurd: 100% (4/4) |
linux: 100% (4/4) |
macos: 50% (2/4) |
minix: 25% (1/4) |
musl: 100% (4/4) |
netbsd: 100% (4/4) |
omnios: 50% (2/4) |
openbsd: 100% (4/4) |
solaris: 75% (3/4) ~ 100% = +25% (1) as previous_posix |
sortix: 75% (3/4) |
Optional: DC Device Control |
||||||||||||||
§ include | aix: 0% (0/3) |
dragonfly: 0% (0/3) |
freebsd: 0% (0/3) |
haiku: 66% (2/3) |
hurd: 0% (0/3) |
linux: 0% (0/3) |
macos: 0% (0/3) |
minix: 0% (0/3) |
musl: 0% (0/3) |
netbsd: 0% (0/3) |
omnios: 0% (0/3) |
openbsd: 0% (0/3) |
solaris: 0% (0/3) |
sortix: 0% (0/3) |
Optional: FR FORTRAN Runtime Utilities |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 0% (0/1) |
linux: 0% (0/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 0% (0/1) |
sortix: 0% (0/1) |
Optional: FSC File Synchronization |
||||||||||||||
§ include | aix: 100% (2/2) |
dragonfly: 100% (2/2) |
freebsd: 100% (2/2) |
haiku: 100% (2/2) |
hurd: 100% (2/2) |
linux: 100% (2/2) |
macos: 100% (2/2) |
minix: 100% (2/2) |
musl: 100% (2/2) |
netbsd: 100% (2/2) |
omnios: 100% (2/2) |
openbsd: 100% (2/2) |
solaris: 100% (2/2) |
sortix: 100% (2/2) |
Optional: FSC|SIO File Synchronization or Synchronized Input and Output |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 0% (0/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 100% (1/1) |
netbsd: 100% (1/1) |
omnios: 100% (1/1) |
openbsd: 0% (0/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: IP6 IPV6 |
||||||||||||||
§ include | aix: 100% (39/39) |
dragonfly: 100% (39/39) |
freebsd: 94% (37/39) ~ 100% = +5% (2) as extension |
haiku: 100% (39/39) |
hurd: 100% (39/39) |
linux: 100% (39/39) |
macos: 92% (36/39) ~ 100% = +7% (3) as extension |
minix: 100% (39/39) |
musl: 100% (39/39) |
netbsd: 100% (39/39) |
omnios: 89% (35/39) ~ 100% = +10% (4) as extension |
openbsd: 94% (37/39) ~ 100% = +5% (2) as extension |
solaris: 100% (39/39) |
sortix: 100% (39/39) |
Optional: MC1 Non-Robust Mutex Priority Protection or Non-Robust Mutex Priority Inheritance or Robust Mutex Priority Protection or Robust Mutex Priority Inheritance |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 0% (0/3) ~ 100% = +100% (3) as extension |
linux: 100% (3/3) |
macos: 100% (3/3) |
minix: 0% (0/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 100% (3/3) |
openbsd: 66% (2/3) |
solaris: 100% (3/3) |
sortix: 0% (0/3) |
Optional: ML Process Memory Locking |
||||||||||||||
§ include | aix: 100% (5/5) |
dragonfly: 100% (5/5) |
freebsd: 100% (5/5) |
haiku: 20% (1/5) |
hurd: 100% (5/5) |
linux: 100% (5/5) |
macos: 100% (5/5) |
minix: 60% (3/5) |
musl: 100% (5/5) |
netbsd: 100% (5/5) |
omnios: 100% (5/5) |
openbsd: 100% (5/5) |
solaris: 100% (5/5) |
sortix: 0% (0/5) |
Optional: MLR Range Memory Locking |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 100% (3/3) |
linux: 100% (3/3) |
macos: 100% (3/3) |
minix: 33% (1/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 100% (3/3) |
openbsd: 100% (3/3) |
solaris: 100% (3/3) |
sortix: 0% (0/3) |
Optional: MSG Message Passing |
||||||||||||||
§ include | aix: 80% (25/31) |
dragonfly: 80% (25/31) |
freebsd: 80% (25/31) |
haiku: 9% (3/31) |
hurd: 100% (31/31) |
linux: 100% (31/31) |
macos: 16% (5/31) |
minix: 67% (21/31) |
musl: 80% (25/31) |
netbsd: 100% (31/31) |
omnios: 100% (31/31) |
openbsd: 9% (3/31) |
solaris: 100% (31/31) |
sortix: 12% (4/31) |
Optional: OB Obsolescent |
||||||||||||||
§ include | aix: 100% (33/33) |
dragonfly: 81% (27/33) |
freebsd: 27% (9/33) |
haiku: 51% (17/33) |
hurd: 93% (31/33) |
linux: 87% (29/33) |
macos: 39% (13/33) |
minix: 24% (8/33) |
musl: 90% (30/33) |
netbsd: 27% (9/33) |
omnios: 27% (9/33) |
openbsd: 100% (33/33) |
solaris: 100% (33/33) |
sortix: 72% (24/33) |
Optional: OB XSI Obsolescent and X/Open System Interfaces |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 33% (1/3) |
freebsd: 33% (1/3) |
haiku: 100% (3/3) |
hurd: 33% (1/3) |
linux: 33% (1/3) |
macos: 100% (3/3) |
minix: 33% (1/3) |
musl: 100% (3/3) |
netbsd: 33% (1/3) |
omnios: 100% (3/3) |
openbsd: 33% (1/3) |
solaris: 33% (1/3) ~ 100% = +66% (2) as previous_posix |
sortix: 0% (0/3) |
Optional: PIO Prioritized Input and Output |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 0% (0/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 100% (1/1) |
musl: 0% (0/1) |
netbsd: 100% (1/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 0% (0/1) |
sortix: 0% (0/1) |
Optional: PS Process Scheduling |
||||||||||||||
§ include | aix: 100% (6/6) |
dragonfly: 100% (6/6) |
freebsd: 100% (6/6) |
haiku: 33% (2/6) |
hurd: 83% (5/6) |
linux: 100% (6/6) |
macos: 16% (1/6) |
minix: 33% (2/6) |
musl: 83% (5/6) |
netbsd: 100% (6/6) |
omnios: 100% (6/6) |
openbsd: 33% (2/6) |
solaris: 100% (6/6) |
sortix: 0% (0/6) |
Optional: PS|TPS Process Scheduling or Thread Execution Scheduling |
||||||||||||||
§ include | aix: 100% (6/6) |
dragonfly: 100% (6/6) |
freebsd: 100% (6/6) |
haiku: 83% (5/6) |
hurd: 100% (6/6) |
linux: 100% (6/6) |
macos: 83% (5/6) |
minix: 50% (3/6) |
musl: 100% (6/6) |
netbsd: 100% (6/6) |
omnios: 100% (6/6) |
openbsd: 83% (5/6) |
solaris: 100% (6/6) |
sortix: 0% (0/6) |
Optional: RPI Robust Mutex Priority Inheritance |
||||||||||||||
§ include | aix: 0% (0/1) |
dragonfly: 100% (1/1) |
freebsd: 0% (0/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 0% (0/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: RPI|TPI Robust Mutex Priority Inheritance or Non-Robust Mutex Priority Inheritance |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 0% (0/1) ~ 100% = +100% (1) as extension |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 100% (1/1) |
netbsd: 100% (1/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: RPP Robust Mutex Priority Protection |
||||||||||||||
§ include | aix: 0% (0/1) |
dragonfly: 100% (1/1) |
freebsd: 0% (0/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 0% (0/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: RPP|TPP Robust Mutex Priority Protection or Non-Robust Mutex Priority Protection |
||||||||||||||
§ include | aix: 100% (5/5) |
dragonfly: 100% (5/5) |
freebsd: 100% (5/5) |
haiku: 100% (5/5) |
hurd: 0% (0/5) ~ 100% = +100% (5) as extension |
linux: 100% (5/5) |
macos: 100% (5/5) |
minix: 0% (0/5) |
musl: 60% (3/5) |
netbsd: 100% (5/5) |
omnios: 100% (5/5) |
openbsd: 60% (3/5) |
solaris: 100% (5/5) |
sortix: 0% (0/5) |
Optional: RS Raw Sockets |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 100% (3/3) |
linux: 100% (3/3) |
macos: 100% (3/3) |
minix: 100% (3/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 100% (3/3) |
openbsd: 100% (3/3) |
solaris: 100% (3/3) |
sortix: 66% (2/3) |
Optional: SD Software Development Utilities |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: SHM Shared Memory Objects |
||||||||||||||
§ include | aix: 50% (3/6) |
dragonfly: 50% (3/6) |
freebsd: 50% (3/6) |
haiku: 50% (3/6) |
hurd: 50% (3/6) |
linux: 50% (3/6) |
macos: 33% (2/6) |
minix: 16% (1/6) |
musl: 50% (3/6) |
netbsd: 50% (3/6) |
omnios: 50% (3/6) |
openbsd: 33% (2/6) |
solaris: 50% (3/6) |
sortix: 0% (0/6) |
Optional: SHM|TYM Shared Memory Objects or Typed Memory Objects |
||||||||||||||
§ include | aix: 0% (0/2) |
dragonfly: 0% (0/2) |
freebsd: 0% (0/2) |
haiku: 0% (0/2) |
hurd: 0% (0/2) |
linux: 0% (0/2) |
macos: 0% (0/2) |
minix: 0% (0/2) |
musl: 0% (0/2) |
netbsd: 0% (0/2) |
omnios: 0% (0/2) |
openbsd: 0% (0/2) |
solaris: 0% (0/2) |
sortix: 0% (0/2) |
Optional: SIO Synchronized Input and Output |
||||||||||||||
§ include | aix: 66% (4/6) |
dragonfly: 33% (2/6) |
freebsd: 50% (3/6) |
haiku: 66% (4/6) |
hurd: 50% (3/6) |
linux: 66% (4/6) |
macos: 33% (2/6) |
minix: 50% (3/6) |
musl: 50% (3/6) |
netbsd: 66% (4/6) |
omnios: 66% (4/6) |
openbsd: 66% (4/6) |
solaris: 66% (4/6) |
sortix: 0% (0/6) |
Optional: SPN Spawn |
||||||||||||||
§ include | aix: 90% (29/32) |
dragonfly: 90% (29/32) |
freebsd: 90% (29/32) |
haiku: 93% (30/32) |
hurd: 90% (29/32) ~ 93% = +3% (1) as extension |
linux: 90% (29/32) ~ 93% = +3% (1) as extension |
macos: 90% (29/32) ~ 93% = +3% (1) as extension |
minix: 87% (28/32) |
musl: 93% (30/32) |
netbsd: 96% (31/32) |
omnios: 100% (32/32) |
openbsd: 90% (29/32) |
solaris: 90% (29/32) ~ 100% = +9% (3) as extension |
sortix: 3% (1/32) |
Optional: SPN PS Spawn and Process Scheduling |
||||||||||||||
§ include | aix: 100% (6/6) |
dragonfly: 100% (6/6) |
freebsd: 100% (6/6) |
haiku: 0% (0/6) |
hurd: 100% (6/6) |
linux: 100% (6/6) |
macos: 0% (0/6) |
minix: 100% (6/6) |
musl: 100% (6/6) |
netbsd: 100% (6/6) |
omnios: 100% (6/6) |
openbsd: 100% (6/6) |
solaris: 100% (6/6) |
sortix: 0% (0/6) |
Optional: SS Process Sporadic Server |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 0% (0/1) ~ 100% = +100% (1) as previous_posix |
sortix: 0% (0/1) |
Optional: SS|TSP Process Sporadic Server or Thread Sporadic Server |
||||||||||||||
§ include | aix: 25% (2/8) |
dragonfly: 37% (3/8) |
freebsd: 37% (3/8) |
haiku: 37% (3/8) |
hurd: 25% (2/8) |
linux: 25% (2/8) |
macos: 25% (2/8) |
minix: 25% (2/8) |
musl: 37% (3/8) |
netbsd: 25% (2/8) |
omnios: 25% (2/8) |
openbsd: 25% (2/8) |
solaris: 25% (2/8) |
sortix: 25% (2/8) |
Optional: TCT Thread CPU-Time Clocks |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 100% (3/3) |
linux: 100% (3/3) |
macos: 66% (2/3) |
minix: 0% (0/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 33% (1/3) |
openbsd: 100% (3/3) |
solaris: 66% (2/3) ~ 100% = +33% (1) as previous_posix |
sortix: 66% (2/3) |
Optional: TPI Non-Robust Mutex Priority Inheritance |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: TPP Non-Robust Mutex Priority Protection |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 100% (1/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: TPS Thread Execution Scheduling |
||||||||||||||
§ include | aix: 100% (14/14) |
dragonfly: 92% (13/14) |
freebsd: 92% (13/14) |
haiku: 64% (9/14) |
hurd: 100% (14/14) |
linux: 100% (14/14) |
macos: 92% (13/14) |
minix: 0% (0/14) |
musl: 100% (14/14) |
netbsd: 92% (13/14) |
omnios: 100% (14/14) |
openbsd: 92% (13/14) |
solaris: 100% (14/14) |
sortix: 0% (0/14) |
Optional: TSA Thread Stack Address Attribute |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 100% (1/1) |
musl: 100% (1/1) |
netbsd: 100% (1/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: TSA TSS Thread Stack Address Attribute and Thread Stack Size Attribute |
||||||||||||||
§ include | aix: 100% (2/2) |
dragonfly: 100% (2/2) |
freebsd: 100% (2/2) |
haiku: 100% (2/2) |
hurd: 100% (2/2) |
linux: 100% (2/2) |
macos: 100% (2/2) |
minix: 0% (0/2) |
musl: 100% (2/2) |
netbsd: 100% (2/2) |
omnios: 100% (2/2) |
openbsd: 100% (2/2) |
solaris: 100% (2/2) |
sortix: 0% (0/2) |
Optional: TSH Thread Process-Shared Synchronization |
||||||||||||||
§ include | aix: 100% (9/9) |
dragonfly: 100% (9/9) |
freebsd: 100% (9/9) |
haiku: 100% (9/9) |
hurd: 100% (9/9) |
linux: 100% (9/9) |
macos: 77% (7/9) |
minix: 0% (0/9) |
musl: 100% (9/9) |
netbsd: 0% (0/9) |
omnios: 100% (9/9) |
openbsd: 44% (4/9) |
solaris: 100% (9/9) |
sortix: 0% (0/9) |
Optional: TSP Thread Sporadic Server |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 100% (1/1) |
linux: 100% (1/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 0% (0/1) ~ 100% = +100% (1) as previous_posix |
sortix: 0% (0/1) |
Optional: TSS Thread Stack Size Attribute |
||||||||||||||
§ include | aix: 100% (3/3) |
dragonfly: 100% (3/3) |
freebsd: 100% (3/3) |
haiku: 100% (3/3) |
hurd: 100% (3/3) |
linux: 100% (3/3) |
macos: 100% (3/3) |
minix: 33% (1/3) |
musl: 100% (3/3) |
netbsd: 100% (3/3) |
omnios: 100% (3/3) |
openbsd: 100% (3/3) |
solaris: 100% (3/3) |
sortix: 100% (3/3) |
Optional: TYM Typed Memory Objects |
||||||||||||||
§ include | aix: 7% (1/14) |
dragonfly: 7% (1/14) |
freebsd: 7% (1/14) |
haiku: 7% (1/14) |
hurd: 7% (1/14) |
linux: 7% (1/14) |
macos: 14% (2/14) |
minix: 0% (0/14) |
musl: 7% (1/14) |
netbsd: 0% (0/14) |
omnios: 0% (0/14) |
openbsd: 7% (1/14) |
solaris: 0% (0/14) ~ 7% = +7% (1) as previous_posix |
sortix: 0% (0/14) |
Optional: UP User Portability Utilities |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 100% (1/1) |
freebsd: 100% (1/1) |
haiku: 100% (1/1) |
hurd: 0% (0/1) |
linux: 0% (0/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 100% (1/1) |
openbsd: 100% (1/1) |
solaris: 100% (1/1) |
sortix: 0% (0/1) |
Optional: UU UUCP Utilities |
||||||||||||||
§ include | aix: 100% (1/1) |
dragonfly: 0% (0/1) |
freebsd: 0% (0/1) |
haiku: 100% (1/1) |
hurd: 0% (0/1) |
linux: 0% (0/1) |
macos: 0% (0/1) |
minix: 0% (0/1) |
musl: 0% (0/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 100% (1/1) |
solaris: 0% (0/1) |
sortix: 0% (0/1) |
Optional: XSI X/Open System Interfaces |
||||||||||||||
§ include | aix: 48% (229/470) ~ 92% = +1% (5) as extension +42% (199) as previous_posix |
dragonfly: 84% (399/470) ~ 86% = +1% (6) as extension |
freebsd: 84% (398/470) ~ 86% = +2% (10) as extension |
haiku: 75% (357/470) |
hurd: 84% (396/470) ~ 88% = +4% (20) as extension |
linux: 86% (406/470) ~ 90% = +4% (20) as extension |
macos: 91% (429/469) ~ 92% = +0% (3) as extension |
minix: 81% (383/470) ~ 82% = +0% (3) as extension |
musl: 87% (411/470) ~ 88% = +1% (5) as extension |
netbsd: 83% (394/470) ~ 84% = +0% (3) as extension |
omnios: 90% (425/470) ~ 91% = +0% (4) as extension |
openbsd: 78% (371/470) |
solaris: 67% (319/470) ~ 91% = +0% (2) as extension +23% (109) as previous_posix |
sortix: 31% (150/470) ~ 32% = +0% (2) as extension |
Optional: XSI TYM X/Open System Interfaces and Typed Memory Objects |
||||||||||||||
§ include | aix: 0% (0/1) |
dragonfly: 0% (0/1) |
freebsd: 0% (0/1) |
haiku: 0% (0/1) |
hurd: 0% (0/1) |
linux: 0% (0/1) |
macos: 100% (1/1) |
minix: 0% (0/1) |
musl: 100% (1/1) |
netbsd: 0% (0/1) |
omnios: 0% (0/1) |
openbsd: 0% (0/1) |
solaris: 0% (0/1) |
sortix: 0% (0/1) |
Optional: XSI|SIO X/Open System Interfaces or Synchronized Input and Output |
||||||||||||||
§ include | aix: 0% (0/4) ~ 100% = +100% (4) as previous_posix |
dragonfly: 100% (4/4) |
freebsd: 100% (4/4) |
haiku: 100% (4/4) |
hurd: 100% (4/4) |
linux: 100% (4/4) |
macos: 100% (4/4) |
minix: 75% (3/4) |
musl: 100% (4/4) |
netbsd: 100% (4/4) |
omnios: 100% (4/4) |
openbsd: 100% (4/4) |
solaris: 100% (4/4) |
sortix: 0% (0/4) |