Live data from Hacker News

Windows 11 will happily execute a binary compiled 30 years ago

twitter.com

411–420 of 424 posts

Re: Windows 11 will happily execute a binary compiled 30 years ago

#411
post #348

Earlier quoted context omitted.

This is actually what most gpu driver updates are. Instead of devs fixing their games, nvidia calcilated its in their best interest to just fix the game bugs at the gpu driver level and push updates.

> fix the game bugs at the gpu driver level and push updates it's because the nvidia drivers are opaque blobs, rather than a source distribution. If nvidia distributed their drivers as open source, i would imagine developers would likely "fix" their games properly because they'd be able to see what is going on underneath the hood, and write more optimal code. of course, this removes some "competitive advantage" nvidi…

Open source drivers also carry workarounds for buggy OpenGL [0] and Vulkan [1] programs.

[0] https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/uti...

[1] https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/uti...

Yes, these should be fixed properly in the programs instead of the driver but more often than not they won't users don't care that its the program being buggy when it works with another driver because it either doesn't trigger the bug or has its own workaround. The opposite also exists of course - application workaround for driver bugs. Or for bugs in crappy third-party code that gamers like to inject into the process, e.g. the Steam overlay.

If anything, AMD drivers probably have more workarounds as devs are more likely to test with NVidia due to the unbalanced market share.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#412
post #388

Earlier quoted context omitted.

Here's the link, for those interested: https://techreport.com/review/how-atis-drivers-optimize-quak... Personally, I don't believe this is a good example; as this was ATI purposefully crippling the experience (downscaling textures, being the prime aspect) to cheat benchmarks. OP is more referring to "transparent" optimizations (the same experience, but made to run faster for the GPUs architecture, usually via operati…

Ah, yes, that's true, it's usually not done maliciously like the ATI example. It came to mind because it was a well-documented case of the driver being aware of the application and changing behavior.

Newer APIs even have the program provide more detailed information [0] so workarounds can more easily apply to e.g. multiple games using the same engine. Renaming the executable won't be enough to test for / disable this kind of hack today.

[0] https://registry.khronos.org/vulkan/specs/1.3-extensions/man...

Re: Windows 11 will happily execute a binary compiled 30 years ago

#414

Earlier quoted context omitted.

This is basically the defense of bad deeds: bad deeds inspire others to do good deeds.

No, the absence of a bad thing creates room for a good thing. Because an old, out of date application is not available, there is a viable market for a new, up-to-date application that serves the same purpose.

Gee isn't it great when modern businesses don't have to compete with decades old software and can sell you their crapware for whatever price they want because there is no alternative.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#415

Earlier quoted context omitted.

> Linux is no better with no stable ABI. I’m confused. Linus has repeatedly stated that the ABI should be stable, “we don't break user space”. There are exceptions, but any proposal that makes a breaking change to the kernel’s external symbols is very hard to push through. I don’t remember anything breaking because of a new kernel version except device drivers, which are part of the kernel anyway and should be compil…

The kernel userspace APIs are pretty stable, the APIs provided by the rest of what constitutes a complete Linux "operating system" are not. I've ended up using a lot of hacks and tricks to get some early Linux games running on modern systems. Some applications designed for X still have broken features in Wayland, and likely won't be fixed without new versions of said apps because making Wayland compatible would break…

> The kernel userspace APIs are pretty stable, the APIs provided by the rest of what constitutes a complete Linux "operating system" are not.

There are plenty of userspace ABIs that are extremely stable, including whaever you need to run a game (like the C runtime). There are also APIs without stability guarantees (like the C++ standard runtime). A lot of games that no longer work depend on some of the latter libraries. There are also ABI bugs, no compatibility is perfect, but those usually do get fixed when found unless doing so would break more programs.

> Some applications designed for X still have broken features in Wayland, and likely won't be fixed without new versions of said apps because making Wayland compatible would break the entire security model.

That's not a long term compatibility problem but using a zero trust mobile phone security model on a desktop problem. That security model should be broken and moved to /dev/null where it belongs.

But really at some point you are going to need compatibility layers anyway. We already have Wine with great support for old Windows apps, there is nothing preventing something similar for legacy Linux on modern Linux emulation - except a lack of interest because there really aren't that many Linux-only legacy applications.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#416

Earlier quoted context omitted.

From where I'm sitting this looks like an excellent argument for breaking backwards compatibility. All those bullshit hacks are a maintenance and debugging burden for someone and a tax on the whole rest of the operating system -- and I'd argue that it really shows.

The thing about Microsoft is that they developed a framework for doing that kind of thing in a systematic way so it is not so hackish as it sounds. That's an innocent example but do recall that circa 1995-2005 or so, Microsoft looked like a dangerous monopolist and could have been in legal jeopardy if a product that competes with office (say WordPerfect) quit working when they went from Win 95 to Win 98 or Win 2k to…

> recall that circa 1995-2005 or so, Microsoft looked like a dangerous monopolist

As opposed to now?

Re: Windows 11 will happily execute a binary compiled 30 years ago

#417

Earlier quoted context omitted.

No, the absence of a bad thing creates room for a good thing. Because an old, out of date application is not available, there is a viable market for a new, up-to-date application that serves the same purpose.

Gee isn't it great when modern businesses don't have to compete with decades old software and can sell you their crapware for whatever price they want because there is no alternative.

The general idea behind capitalism is that the market provides alternatives. Why would there only be evil giant corporations whose applications are so bad that they would be trumped by those great ancient, obsolete applications? There is also room for small vendors to provide innovative new alternative, and for the open source community to try their hand.

The reality is that on the Apple platforms these ancient, obsolete applications are not available and instead there are new, modern, better applications because there is a market for them. While on the Windows platform it’s a big, inconsistent insecure mess because everyone is clinging to obsolete, unsupported software that is barely good enough.

By the way, keep pressing that button you think is the disagree button!

Re: Windows 11 will happily execute a binary compiled 30 years ago

#418
post #99

Earlier quoted context omitted.

Linux has a stable userland ABI OpenBSD doesn't even have that: if you don't reboot quickly after installing a major upgrade you're going to have a bad time whereas you can run ancient userland on more modern Linux kernels (as evidenced by the container ecosystem)

The Linux kernel has a stable userland ABI. Other core components that makes up most Linux distros (e.g. libc, gtk, libc, curl, ssl etc) however do not.

The libc (glibc) absolutely has a stable ABI. Stop spreading FUD.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#419
post #352

It's not insane, it's my expectation for a tool. My hammer still works perfectly well with nails I bought 30 years ago. It's impossible to build on shifting foundations that are constantly breaking backward compatibility. You eventually spend all your time maintaining instead of creating. Then you have to go reinvent your wheel, and in my experience as a user your shiny new one isn't necessarily better. Most of the s…

On the other hand, you’re stuck with stupid limitations in perpetuity: https://news.ycombinator.com/item?id=14286383

Microsoft could let new applications opt out of that limit if they cared. They have done this for plenty of other limits, e.g. absurdly low path length restrictions.

Re: Windows 11 will happily execute a binary compiled 30 years ago

#420

I used to believe this, but no longer. Any Steam game that used the "Games for Windows – Live" service, and wasn't updated since the service shut down in 2014, would fail to launch on Windows 10 & later, because the DLLs for the service were removed. For a time, folks were able to download the DLL from third-party sites, but that doesn't work now.

Ah, but I bet the pirate versions of those games still work ;)
Post reply on HN