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.
Suites
os-test currently contains these suites:
- 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.1-RELEASE amd64 |
haiku Haiku 1 x86_64 |
hurd GNU 0.9 i686-AT386 |
linux Linux 6.12.32-amd64 x86_64 |
macos Darwin 21.6.0 arm64 |
minix Minix 3.4.0 i386 |
netbsd NetBSD 10.0 amd64 |
omnios SunOS 5.11 i86pc |
openbsd OpenBSD 7.6 amd64 |
solaris SunOS 5.11 i86pc |
sortix Sortix 1.1.0-dev x86_64 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
§ overall |
aix: 73% (175/238) |
dragonfly: 73% (178/243) |
freebsd: 70% (178/253) |
haiku: 53% (158/293) |
hurd: 71% (177/248) |
linux: 92% (220/238) |
macos: 69% (176/253) |
minix: 59% (138/233) |
netbsd: 69% (178/255) |
omnios: 90% (219/241) |
openbsd: 69% (176/255) |
solaris: 75% (187/247) |
sortix: 78% (188/241) |
§ io |
aix: 36% (20/55) |
dragonfly: 32% (18/55) |
freebsd: 38% (21/55) |
haiku: 36% (20/55) |
hurd: 36% (20/55) |
linux: 96% (53/55) |
macos: 36% (20/55) |
minix: 29% (16/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) |
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) |
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) |
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: 93% (29/31) |
haiku: 100% (31/31) |
hurd: 87% (27/31) |
linux: 93% (29/31) |
macos: 77% (24/31) |
minix: 64% (20/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: 46% (74/160) |
hurd: 80% (92/115) |
linux: 89% (95/106) |
macos: 71% (86/120) |
minix: 85% (85/100) |
netbsd: 68% (83/122) |
omnios: 84% (91/108) |
openbsd: 68% (83/122) |
solaris: 80% (92/114) |
sortix: 81% (89/109) |