Phantasm on Nostr: >When it comes to software actually designed to run on the kernel, Linux - Linux does ...
>When it comes to software actually designed to run on the kernel, Linux - Linux does a much better job than windows.
Grab a 5 year old version of glibc and try to compile it on a modern toolchain. Spoiler alert: it will very likely fail, because the compiler is too new.
>Linux's SYSCALL ABI has not changed, so you can install whatever version of systemd/Linux and the elf prime that does DeCSS will still run.
The syscall ABI does not matter when glibc breaks ABI on almost every minor release. If you grab a compiled version of Firefox from 5 years ago and fix all the dynamic link errors with symlinks to your own libraries, it very likely won't run. A Windows version would. And also Linux ABI has changed, mainly when it comes to PCI calls. There was even a compatibility header for those changes that was removed somewhat recently.
>Although windows tries not to change anything and thus maintain legacy compatibility
Instead of changing the current API, they leave the old one in and create new calls that don't disrupt the old ones. A php mysql_real_escape_string basically. Something that is almost non-existent in the Linux world.
>With the source code of the software, you just compile it, fix up any compile failures and suddenly you have a working binary.
Yes, you can have a functioning binary. After many hours and sometimes days of fixing errors that is. I've done this myself to GCC and binutils when I was compiling the last version of them with Solaris 7 support. It's not trivial and prone to breaking if you don't fully understand the codebase.
Grab a 5 year old version of glibc and try to compile it on a modern toolchain. Spoiler alert: it will very likely fail, because the compiler is too new.
>Linux's SYSCALL ABI has not changed, so you can install whatever version of systemd/Linux and the elf prime that does DeCSS will still run.
The syscall ABI does not matter when glibc breaks ABI on almost every minor release. If you grab a compiled version of Firefox from 5 years ago and fix all the dynamic link errors with symlinks to your own libraries, it very likely won't run. A Windows version would. And also Linux ABI has changed, mainly when it comes to PCI calls. There was even a compatibility header for those changes that was removed somewhat recently.
>Although windows tries not to change anything and thus maintain legacy compatibility
Instead of changing the current API, they leave the old one in and create new calls that don't disrupt the old ones. A php mysql_real_escape_string basically. Something that is almost non-existent in the Linux world.
>With the source code of the software, you just compile it, fix up any compile failures and suddenly you have a working binary.
Yes, you can have a functioning binary. After many hours and sometimes days of fixing errors that is. I've done this myself to GCC and binutils when I was compiling the last version of them with Solaris 7 support. It's not trivial and prone to breaking if you don't fully understand the codebase.