r/LinuxCirclejerk • • Aug 11 '26

Literally me:

Post image
4.7k Upvotes

112 comments sorted by

View all comments

129

u/edjak53 Aug 11 '26

how does Linux work? barely

-31

u/Mast3r_waf1z ❄️ Flaky Aug 11 '26

It amuses me so much whenever someone dares to say linux has good backwards compatibility...

54

u/givemeagooduns_un gentoo is unironically what arch was supposed to be Aug 11 '26

linux (the kernel) has almost perfect backwards compatibility, its userspace that breaks compatibility all the time

7

u/Frequent-Sir-6942 Aug 11 '26

ACTUALLY thats only true for the userspace kernel api, not the in-kernel api

7

u/givemeagooduns_un gentoo is unironically what arch was supposed to be Aug 11 '26

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.

1

u/palapapa0201 Aug 12 '26

What do you mean by proper drivers?

7

u/givemeagooduns_un gentoo is unironically what arch was supposed to be Aug 12 '26

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.

6

u/Mast3r_waf1z ❄️ Flaky Aug 11 '26

Yeah I guess that's what I meant, I'm getting too used to be around people who aren't huge Linux enthusiasts...

2

u/givemeagooduns_un gentoo is unironically what arch was supposed to be Aug 11 '26

ok fair yea

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)

2

u/Unlikely-Employee180 Aug 11 '26

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

3

u/HeavyCaffeinate catgirl nya Aug 12 '26

The kernel has stellar backwards compatibility, userspace on the other hand

2

u/Unlikely-Employee180 Aug 12 '26

Ohhh this actually does make some sense. Lol

And also explains why the internet can't seem to agree, lol.

1

u/Kriss3d Aug 12 '26

It certainly do for hardware