Linux kernel interfaces: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{Expert needed}}
m gr: hyphenated words with hypends rather than n-dashes
Line 82:
End-users are in fact not all interested in the Linux API (or the Windows API), but in the ABIs.
 
== In–kernelIn-kernel APIs ==
There are a lot of kernel-internal APIs for all the subsystems to interface with one another. These are being kept fairly stable, but there is no guarantee for stability. In case new research or insights make a change seem favorable, an API is changed, all necessary rewrite and testing have to be done by the author.
 
The Linux kernel is a monolithic kernel, hence device drivers are kernel components. To ease the burden of companies maintaining their (proprietary) device drivers out-of-tree, stable APIs for the device drivers have been repeatedly requested. The Linux kernel developers have repeatedly denied guaranteeing stable in-kernel APIs for device drivers. Guaranteeing such would have faltered the development of the Linux kernel in the past and would still in the future and, due to the nature of free and open-source software, are not necessary. Ergo, by choice, the Linux kernel has no ''stable'' in-kernel API.<ref>{{cite web|url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/stable-api-nonsense.rst |title=The Linux Kernel Driver Interface}}</ref>
 
== In–kernelIn-kernel ABIs ==
Since there are no stable in–kernelin-kernel APIs, there cannot be stable in–kernelin-kernel ABIs.<ref>{{cite web|url=http://abi-laboratory.pro/tracker/timeline/linux/ | title=Analysis of ABI changes in the Linux kernel |publisher=Andrey Ponomarenko's ABI laboratory|date=2016-03-15}}</ref>
 
== Abstraction APIs ==