Linux kernel interfaces: Difference between revisions

Content deleted Content added
uses dash later so do same in intro
Describe classifications up front and consistently
Line 1:
{{Short description|An overview and comparison of the Linux kernel APIAPIs and ABI.ABIs}}
{{essay-like|date=July 2014}}
 
[[File:Linux kernel interfaces.svg|thumb|upright=1.5|Linux API, Linux ABI, and in-kernel APIs and ABIs]]
 
The [[Linux kernel]] provides multiple interfaces to [[User space and kernel space|user-space and kernel-mode]] code. thatThe areinterfaces usedcan forbe varyingclassified purposesas andeither that[[application haveprogramming varyinginterface]] properties(API) by design. There are two types ofor [[application programmingbinary interface]] (APIABI), inand thethey Linuxcan kernel:be classified as either kernel–user space andor kernel-internal.
 
== {{Anchor|Linux API}}Linux API ==
Line 71:
== Linux ABI ==
{{Expert needed|free and open-source software|ex2=software|ex3=computing|reason=This section mostly ignores the kernel-userspace ABI (that is very real and important thing) and jumps into userspace-to-userspace APIs|date=February 2018}}
[[File:Linux API and Linux ABI.svg|thumb|upright=1.5|The Linux API and the Linux [[Application binary interface|ABI]] ]]
{{Main article|x32 ABI|Linux Standard Base}}
 
The Linux [[application binary interface]] (ABI) is a kernel–user space ABI. As ABI is a [[machine code]] interface, the Linux ABI is 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]]s (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.
 
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.