A ABI is the low-level implementation of any programming interface, no matter if it uses interrupts (0x80), sysenter, or long jump to code that the OS put there, etc, etc..
It is the nuts and bolts that do the low level real work of implementing a call / interface.
So the syscalls of a Linux/Unix machine are the same, b/c of the POSIX API. The POSIX API is a standard for *nix OSes.
Now, we have compilers such as gcc, clang and Microsoft's C++ compiler.
Do they decide on their own ABI (specification of how things should be implemented in the lowest levels) then?:
dankoncs|4 years ago
So the syscalls of a Linux/Unix machine are the same, b/c of the POSIX API. The POSIX API is a standard for *nix OSes.
Now, we have compilers such as gcc, clang and Microsoft's C++ compiler. Do they decide on their own ABI (specification of how things should be implemented in the lowest levels) then?:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html