Linux ABI Stability
Comments debate the stability of Linux's kernel ABI, which is intentionally stable by design according to Linus Torvalds' policy, contrasted with unstable userland ABIs and comparisons to other OSes like Windows, BSD, and macOS where stability priorities differ.
Activity Over Time
Top Contributors
Keywords
Sample Comments
I thought Linux didn't provide a stable ABI and tells developers to upstream instead? Is this the same topic?
Linux absolutely is especially hostile. Windows will generally try to support existing drivers, even binary-only ones, and give plenty of notice for API changes. FreeBSD has dedicated compatibility with previous ABIs going several versions back. Linux explicitly refuses to offer any kind of stability for its API (i.e. they can and will break APIs even in minor patches), yet alone ABI.
The Linux Kernel ABI is incredibly stable, thanks to Linus, it's only the userland built up around it by other people that doesn't give a damn about compatibility. This isn't a significant issue for other OSs because they have a well defined base system and care about compatibility (because users care about compatibility).
Linux have stable kernel ABI, while BSD changes kernel ABI between major versions.
Linux is not known for its stable ABI lol
This is by design. Linux doesn't want to pay the maintenance and performance costs of guaranteeing a stable in-kernel API/ABI:https://www.kernel.org/doc/Documentation/process/stable-api-...
Linux has a stable ABI for user land programs. For drivers the ABI is not stable, but drivers are not sandboxed in linux.
The Linux libc API changed a couple of times in the 1990s (a.out → ELF, libc5 → libc6, etc), but the Linux kernel ABI (what libc uses to talk to the kernel) has been stable since practically the beginning. Linus detests breaking anything that talks to the kernel and considers it massively unprofessional, to the point that even a terrible API will be set in stone if anything uses it.
Linux kernel userland ABI is stable. Nothing else is on linux.
Except notably Linux where the kernel ABI is the thing that’s stable.