> For the complete documentation index, see [llms.txt](https://lagnos.gitbook.io/linux-kernel-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lagnos.gitbook.io/linux-kernel-notes/misc/kabi.md).

# What is KABI or (Kernel ABI) ?

* ABIs are similar to APIs in that they govern the interpretation of commands and exchange of binary data.
* For C programs, the ABI generally comprises the return types and parameter lists of functions, the layout of structs, and the meaning, ordering, and range of enumerated types.
* The functionality of the ABI requires a joint, ongoing effort by :
  * the kernel community, C compilers (such as GCC or clang),
  * the developers who create the userspace C library (most commonly glibc) that implements system calls, and binary applications, which much be laid out in accordance with the Executable and Linking Format (ELF) ![kabi](https://3634555660-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F12dhZAOWr7ayGsy0E9dP%2Fuploads%2Fgit-blob-c44b5d386d7ea5e23ca47a0b0ec76a6c2114c9bb%2Fkabi.png?alt=media)  - All of sysfs (`/sys`) and procfs (`/proc`) are guaranteed stable except for `/sys/kernel/debug`
* Syscall interface is also guaranteed to be stable

Reference : <https://opensource.com/article/22/12/linux-abi> Linus on ABI Breakage : <https://lkml.org/lkml/2018/12/22/232>
