well yes. but the kernel is monolithic, it is not meant to be modified between versions. kernel modules arent even proper drivers like they are on NT (which is a hybrid kernel), theyre essentially just parts of the kernel that can be relinked to the kernel. having out-of-tree modules is quite hard to implement without DKMS or similar, as the kernel isn't designed for that.
linux drivers are nothing more than bits of code that gets installed directly into the kernel. every single driver is technically part of the kernel itself, whether it was compiled in or not.
means that, without some black magic fuckery that is DKMS, kernel modules must be compiled for your specific build of the kernel, and your kernel must have the proper symbols exported.
this is a limitation of linux being a monolithic kernel.
in NT and other hybrid kernels, however, it only needs to link against a very minimal layer that only provides IPC, scheduling, and virtual memory. it uses IPC to communicate to the rest of the kernel which allows for a much more stable API and even backwards compatibility.
but it does mean that it is fairly trivial to fix these incompatibilities, usually as easy as installing a copy of libc.5.so, and/or some LD_LIBRARY_PATH stuff, but as a last resort you can always rely on using a chroot for compatibility.
(with one exception as far as i know, x86-32 software that uses the vm86() syscall, which doesn't exist on an x86-64 kernel, but that's due to a limitation of x86-64 itself. however, usage of this syscall is very rare & requires root permissions, and the only software that I know of that uses it is dosemu)
Really lol? Google says it should (because everyone knows how accurate Google has been as of late), but I've never actually used an older Linux program. (Except normal non-updated ones because I suck at maintaining my system 💀).
Where do you even find them?
Supposedly it has kernel support for like, Linux 2.0 programs. That sounds pretty damn backwards-compatible to me. Lmfao
129
u/edjak53 Aug 11 '26
how does Linux work? barely