Content deleted Content added
No edit summary Tags: Visual edit Mobile edit Mobile web edit |
No edit summary Tags: Visual edit Mobile edit Mobile web edit |
||
Line 56:
== Linux ABI ==
The term Linux ABI refers to a kernel–user space ABI. The
An ABI has to be defined for every instruction set, such as
▲The term Linux ABI refers to a kernel–user space ABI. The [[Application binary interface]] refers to the compiled binaries, in [[machine code]]. Any such ABI is therefore bound to the [[instruction set]]. Defining a useful ABI and keeping it stable is less the responsibility of the Linux kernel developers or of the developers of the GNU C Library, and more the task for [[Linux distribution]]s and [[Independent software vendor]] (ISVs) who wish to sell and provide support for their proprietary software as binaries only for such a single Linux ABI, as opposed to supporting multiple Linux ABIs.
It should be able to compile the software with different compilers against the definitions specified in the ABI and achieve full binary compatibility. Compilers that are
▲An ABI has to be defined for every instruction set, such as [[x86]], [[x86-64]], [[MIPS architecture|MIPS]], [[ARMv7-A]] (32-Bit), [[ARMv8-A]] (64-Bit), etc. with the [[endianness]], if both are supported.
▲It should be able to compile the software with different compilers against the definitions specified in the ABI and achieve full binary compatibility. Compilers that are [[free and open-source software]] are e.g. [[GNU Compiler Collection]], [[LLVM]]/[[Clang]].
End-users are in fact not all interested in the Linux API (or the Windows API), but in the ABIs.
|