Linux Kernel Notes
  • README
  • concepts
    • interrupts
    • syscalls
      • Implementation
      • Syscalls
      • Userspace from syscalls
      • vDSO and virtual syscalls
  • core-apis
    • core-apis
    • kobjects
    • core-utilities
      • Notification Mechanism
      • printk
      • Symbols and Assembler Notations
      • Workqueue
  • debugging-tracing
    • debugging
    • ebpf-tracing
    • finding-bugs
    • syzkaller
    • tracing
  • extras
    • rcu
  • implementations
    • pipes
  • lkmp
    • Prerequisites
    • Linux Kernel Mentorship
    • Setting up for kernel development
  • misc
    • Current
    • What is KABI or (Kernel ABI) ?
    • noinstr
    • this_cpu
  • subsystems
    • device-tree
      • Device Tree YAML Components
      • Testing yaml dtschemas
Powered by GitBook
On this page
Edit on GitHub
  1. misc

What is KABI or (Kernel ABI) ?

PreviousCurrentNextnoinstr

Last updated 1 year ago

  • 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) - All of sysfs (/sys) and procfs (/proc) are guaranteed stable except for /sys/kernel/debug

  • Syscall interface is also guaranteed to be stable

Reference : Linus on ABI Breakage :

https://opensource.com/article/22/12/linux-abi
https://lkml.org/lkml/2018/12/22/232