Originally posted by kpedersen
View Post
Linux kernel syscalls and userspace ABI interfaces were choose as the Unix standard syscalls and userspace ABI because they are in fact most stable out of any posix OS. More stable than Solaris syscalls and userspace ABI.
Solaris has in kernel binary driver compatibility layer Linux kernel does not have that.
This directory documents the interfaces that the developer has defined to be stable. Userspace programs are free to use these interfaces with no restrictions, and backward compatibility for them will be guaranteed for at least 2 years. Most interfaces (like syscalls) are expected to never change and always be available. Really the please note they say the stuff is there basically forever it promised at least 2 years .
If you look in the removed directory that in fact list everything removed ever from the userspace interface
Its 9 things covering the time frame from Linux 2.0 kernel to current. That is the no syscall interfaces. Syscalls are just as stable.
Yes a year tops claim is bogus. Min a syscall/userinterface declared stable must last on Linux is 2 years. Reality is 99percent syscalls/ userspace interfaces declared stable in Linux kernel are forever never to change how they respond to userspace applications.
Yes a removed Linux syscall or userspace API interface unless has to be removed on security grounds(insane rare) has to exist mainline for 2 years as stable then 2 years in deprecated before being removed so the normal min is at least 4 years before the interface could disappear. These long time frame min explain why adding new userspace syscalls or userspace ABI interfaces have very heated debates also due to those heated debates the interface is normally designed right so never changes.
Linux kernel has very few backwards compatibility flags mostly because they are not need because the API/ABI to userspace almost never removed anything and the amount removed is so minor it not funny and Linux kernel does not bother with kernel ABI for driver stability. .
Solaris 8 zone on Solaris 10 has more syscall differences to Solaris 8 so higher application failure rate than using a debian 2.0 chroot on current debian testing . Yes debian 2.0 is 1998 so basically 20 years where Solaris 8 to 10 is only 5 years the solaris change rate of kernel userspace interface change rate to applications is over 4 times faster than the Linux kernel.
The year tops claim is way out as the real figure on the Linux kernel is 4 years min except for insanely rare condition that something has to be removed on security grounds in all of Linux history this has only happened once.
Also do check the Linux kernel config files in distributions for the compatibility flags enabled watch out for CONFIG_IA32_AOUT yes this is enabled in current day Debian kernel is only there for running binaries from debian 1.0 as debian 2.0 uses ELF instead of COFF binary format. So the current day debian kernel is configured to be able to run over 95% of every userspace application ever made for debian almost all enterprise Linux Distributions are this way. The problem is not the linux kernel for application compatibility its userspace stuff like opengl libraries.
Debian/RHEL chroots due to the Linux kernel(and the configuration they choose) makes Solaris zones for backwards compatibility look like a joke. Due to most distribution kernels following Debian/RHEL lead items like flatpak can downright work.
Yes there is a lot of talk about the Linux ABI being unstable this is only the in kernel space driver ABI. The userspace ABI of the Linux kernel is the most stable thing out there by miles with the standard enterprise configurations I know of no OS kernel that can beat Linux kernel on backwards compatibility for user-space applications.
Most Linux backwards compatibility issues are
1) run-time issues like old opengl libraries not knowing how to talk to new hardware and newer library of opengl having some conflict if used with older version of library application is using there are solutions being worked on to fix this at long last.
2) Package management in most distributions choosing security over backwards compatibility so only have the most current version of stuff installed.
Not one of these issues requires any kernel modification to fix. The runtime issue will most likely be solved by dlmopen work in glibc to allow libraries using newer versions of libraries to be mixed with applications using older versions of libraries.
Leave a comment: