• ammonium@lemmy.world
    link
    fedilink
    arrow-up
    12
    ·
    10 hours ago

    The user land API/ABI is stable to a fault in Linux. The kernel API/ABI is unstable

    It’s the other way around. The kernel API stable to a fault, the kernel ABI isn’t. If your application only relies on the kernel API you won’t have many compatibility issues. If you rely on userland stuff such as C++ stdlib, GTK, QT, Python, … Good luck.

    • jollyrogue@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      3 hours ago

      I wasn’t clear and that seems to have cause some confusion. I was talking about the Linux kernel itself, and only the Linux kernel.

      There are two sides to the Linux kernel: internal exposed to drivers and such, external syscalls exposed to the public. That’s what I was talking about.

      All bets are off with 3rd party software. That’s just a general problem in software development. It’s not specific to Linux, and it’s why vendoring libraries is recommended.

      This is why all the 3rd party software is frozen at a point-in-time with fixes backported in distros like Debian or RHEL. It fixes the problems of devs being mercurial. The distro is the SDK. It creates a stable base, and it works rather well.

      Unfortunately, most software relies on libc and a compiler. Both of which can be problems, and both of which are external to the Linux kernel. There’s not much which relies on only kernel syscalls.