This page plans changes to the Sortix system level ABI. Each ABI version is represented as two integers, the major and minor version. The minor version is incremented with unchanged major when additions are made to the system ABI. The major version is incremented and the minor reset to 0 when incompatible changes are made to the system ABI. A minor increment happens when a new kernel is able to run old programs, but old kernels are not able to run new programs. A major increment happens when a new kernel is not able to run old programs. Sortix releases need not be ABI compatible. The upgrade tools properly detect ABI incompatibility by checking the ABI version stored in /etc/sortix-release. The ABI version number is entirely distinct from the release version number.
This is a list of all the ABI changes so far and the planned changes. The list is ordered in reverse chronology.
Planned ABI revisions
1.2 - Add getdnsconfig(2) and setdnsconfig(2)
Two new system calls.
1.1 - Add network stack
This commit adds a bunch of ioctls.
1.0 - Add socket(2)
TODO: Commit needs to increment ABI version.
This commit is a major incompatible change because it removes the /dev/net directory previously used by libc socket(2) to create unix sockets with.
TODO: Check for additions of ioctls and such in the terminal-related commits.
0.2 - Add mkpty(2)
TODO: The syscall is actually called mkptyline? Rename the commit or syscall?
setsid added aswell and other stuff.
0.1 - Add ONLCR and OCRNL
Minor bump because two new bits were added to the termios c_oflag field.
Official ABI revisions
0.0 - Initial ABI
This version represents the ABI of the Sortix 1.0 release.