> Binaries are just not very resilient artifacts, especially when they so closely depend on their surroundings.
Depends on the platform. I can run statically compiled Linux binaries that were released 20 years ago just fine. Similarly, I'm able play Windows games that were released over 20 years ago.
Not by accident... Linux, windows and intel have put in a lot of effort to ensure this holds, specifically because binaries are so incredibly fragile — hell, you’d have the same trouble Mac is having now if you tried to swap out to AMD on any OS; or tried to swap out OS on same hardware.
Really, you should generally be under the presumption that changing anything at all could screw up anything and everything; it’s really a marvel of human engineering anytime software runs successfully
Maybe the binary runs, but for any non-trivial I/O (GUI, 3D, specialized input devices) you're still dependent on specific interfaces which are probably not the same anymore.
Case in point: try running any of the Loki Linux game ports from 20 years ago on a modern distribution...
These are examples of binaries that explicitly don’t depend on so much of their surroundings. They depend on the existence of a processor and a binary executable format, and perhaps some very basic syscalls that had no business changing.
Depends on the platform. I can run statically compiled Linux binaries that were released 20 years ago just fine. Similarly, I'm able play Windows games that were released over 20 years ago.