Live data from Hacker News

How Wine works 101

werat.dev

151–160 of 188 posts

Re: How Wine works 101

#151

Earlier quoted context omitted.

You just can't claim that Windows has "backwards compatibility" if you have to "Google" for it. In a recent article about Linux backwards compatibility, I pointed out that OSS support was terrible, which meant that many games would no longer run out of the box even if statically linked (actually, static linking made the problem harder). It doesn't matter that lack of OSS is a trivially fixable problem (much easier th…

>You just can't claim that Windows has "backwards compatibility" if you have to "Google" for it. [...] One can excuse it however one sees fit but this shows that Windows has lost the backwards compatibility edge that it may once had. I completely disagree with your line of thinking. If modern Windows would have shipped with all possible legacy DLLs, ancient visual C++ libraries and DirectX versions needed for running…

> The current situation is a good compromise between compatibility and bloat.

By this logic, any operating system has perfect backwards compatibility, since you just have to fix whatever's broken ... even when the compatibility shims come from 3rd parties! Linux has perfect backwards compatibility, you just have to download this patched Gtk+ binary from this guy, etc.

Whatever the excuse is, they have dropped their backwards compatibility story. It was part of their official, published ABI, and now it isn't. All the excuses are as bogus as they are on any operating system. Apple also claims they drop backwards compatibility to avoid "bloat", but it is just that, an excuse.

And "bloat" is quite a bogus excuse, too, since it could for example offer to auto-download the required components like it does for previous .NET framework releases. Or even put an updated version on their download site (e.g. as with winhelp). Or just made it a Windows-independent redistributable (e.g. CRTs). One could have an argument if this was the case. (Apple did auto-downloads at some point). Yet here they just didn't care and 3rd parties like Wine had to come in fill the holes.

Not to mention this is not what people have in mind when they think "bloat"; after all, Wine manages to provide all these APIs and sizes at significantly less than a barebones Windows installation.

Re: How Wine works 101

#152

Earlier quoted context omitted.

And let's not forget to be grateful towards for-profit companies that contribute to open source. A lot of the work required to get games working transparently on Wine was thanks to Valve, who released Proton as open source, along with heavy work on DXVK to simulate DirectX, etc. Of course they did it because it benefits them, but still they could have kept it private and it would have boosted only Steam sales. Instea…

They couldn't have kept it private easily, since Wine is licensed LGPL.

All the more reason for praise; usually that license is understood by corporations to mean "don't even think about it". Not only did Valve get what they needed out of it, the community benefited as well. Seems commendable to me.

Re: How Wine works 101

#153

Earlier quoted context omitted.

[[Citation Needed]]. Other than 16-bit software on 64-bit Windows, do you have an example?

A lot of games, Red Alert 2 off the top of my head. Never got it running even in compatibility mode and changing the bit depth.

I'd just like to mention that at least for Windows 10, this specific problem [0] is solved. I love RA2, and still play it.

[0]: https://cnc.community/red-alert-2/how-to-play

Re: How Wine works 101

#154
post #99

I was hoping this was a treatise on the history of wine production.

I stared the title for a few seconds, thinking on the ambiguity, until I said to myself "either is fine".

I like to play old games. And I like to drink old grape juice.

Re: How Wine works 101

#155
post #17

Earlier quoted context omitted.

MS are profit motivated (by definition) and Wine is functionality motivated (again by definition). MS are currently hell bent on getting you onto a cloud subscription for Windows as a service (WAAS) because that is their current business model. The Wine project is hell bent on delivering functionality that you want and they think you might want. Wine is less about shuffling the start menu to the middle of the taskbar…

I'm no Windows fan, but this is not an accurate portrayal (d'oh!). Microsoft has historically put a huge amount of effort in (backwards) compatibility. Here's a famous example: https://arstechnica.com/gadgets/2022/10/windows-95-went-the-... . Related (sub) discussion on HN: https://news.ycombinator.com/item?id=13450160 . It's possible that they changed strategy recently, but there is a very long history of extraordin…

I read somewhere (probably Raymond Chen's blog) that there were different camps at Microsoft. One recognized that backwards compatibility was a very powerful feature. The other thought that there had to be a limit, infinite compatibility was too great a tax to pay forever. The camps have traded power and influence over the years.

Personally I think compatibility has been a huge boon for Microsoft. If you need to throw everything away and start over, why would you stick with Windows?

Re: How Wine works 101

#156
post #141

Earlier quoted context omitted.

I recently installed the Steam version (which in turn also installs Origin inside the prefix to run the game) and it ran just fine. Not sure what issue OP is hitting.

After my PlayOnLinux setup stopped working a long time ago after some Origin update (and several retries afterwards), we tried running the Steam version of the game using Steam's Proton environment and we could start the game only once and then it stopped working again. If you check protondb there seems to have been a regression two weeks ago. The frustrating part is the game itself would be working like charm in Win…

Not sure it helps now, but I believe there's a (buried) setting to keep a game from updating in steam. Of course the vestigial Origin launcher may not really respect it. And you can force a specific proton version.

I actually kind of loath constantly updating single player games. It usually breaks my working install.

Re: How Wine works 101

#157

> Fifth, oh, did you want to run a game? Not just a hello world? Then you need to deal with DirectX, audio (hello PulseAudio, my old friend), input devices (gamepads, joysticks), etc. It’s a lot of work! These last paragraphs just made me realise how grateful I am to people who work on these open source projects without expecting any compensation or even praise for their work. It has happened once or twice that I tri…

I believe the vast majority of people who work in Open Source graphics are actually employed to do so. There are very few people working without compensation, and once they do a handful of meaningful contributions they get offered jobs. We should be actually thankful to the for-profit companies sponsoring those people instead of investing in more closed-source stuff (Intel, AMD, Collabora, Igalia, Red Hat, Code Weavers, VMware, and a few dozen of others I am missing, heck even NVidia contributes to Open Source graphics, although not as much as we would like them to).

Re: How Wine works 101

#158

Earlier quoted context omitted.

Makes sense to me: Exactly, that's why they're not shipped with recent Windows.

No; the point is that if a USER SPACE library can compromise the security of Windows the operating system _in any way_ then that by definition is a Windows issue, not an issue of the library. E.g., Wine ships other implementations of the same libraries and this causes zero extra security problems in Linux.

>Wine ships other implementations of the same libraries and this causes zero extra security problems in Linux.

Because Windows malware can't infect Linux, so why would that be a security issue for Linux? But if you run Windows, you definetly don't want to sideload and use unmaintained libraries and APIs that are 20 years out of date.

Re: How Wine works 101

#159

Earlier quoted context omitted.

>You just can't claim that Windows has "backwards compatibility" if you have to "Google" for it. [...] One can excuse it however one sees fit but this shows that Windows has lost the backwards compatibility edge that it may once had. I completely disagree with your line of thinking. If modern Windows would have shipped with all possible legacy DLLs, ancient visual C++ libraries and DirectX versions needed for running…

> The current situation is a good compromise between compatibility and bloat. By this logic, any operating system has perfect backwards compatibility, since you just have to fix whatever's broken ... even when the compatibility shims come from 3rd parties! Linux has perfect backwards compatibility, you just have to download this patched Gtk+ binary from this guy, etc. Whatever the excuse is, they have dropped their b…

>By this logic, any operating system has perfect backwards compatibility, since you just have to fix whatever's broken

The issue with your logic is you only see things as black or white while, while backwards compatibility is various shades of gray, depending on factors that are mostly beyond Microsoft's control.

Modern Windows cannot account for all possible APIs, DLLs and hacks/workarounds that were used by every developer 20+ years ago, including non standard libraries and APIs, so of course you might need to download some missing DDLs regardless. Even if you use Wine, you could still have to do that to run Red Alert 2 or other such apps. That doesn't mean backwards compatibility does not exist, it means it's not a guaranteed 100% success rate out of the box, depending mostly on what libraries, APIs and hacks the original app developer employed.

And the excuses are not bullshit, but are a matter of money and return on investment and ratio of bloat plus freedom the app developers took at the time which isn't available on Modern windows for security reasons (Windows till and including XP was unsecure as f*ck, I don't think you want to have all those functions the developers of the time exploited, for better or worse, exposed in your modern installation of Windows just for 100% backwards compatibility).

Microsoft can't be expected to ship every single outdated and insecure 20+ year old DLL and undocumented API with every copy of Windows, which is a non issue as the last fifteen F-500 cooperate sys-admins in the world who still need to run 20+ year old corporate apps on modern windows will definitely have the knowhow to copy some DLLs they trust to C:/System32 so their crusty corporates app will work. It's not too hard, to copy some files, is it?

The 32 bit C++ executables I wrote in highschool for windows 95, still run right now on Windows 11 out of the box without any patches or issues. So backswords compatibility exists on windows live and well against your opinion that it doesn't. End of story.

Re: How Wine works 101

#160

The choice of compilers in the godbolt screenshots is odd. First, GCC is the default compiler for Linux and what most is compiled with. But using Clang would make sense if it was also used for the Windows side to Limit the differences to OS details instead of irrelevant compiler differences like Clang optimizing printf to puts while MSVC doesn't. Also, why link to wine-mirror on GitHub instead of Wine's own gitlab in…

The vast majority of commercial Windows software (the stuff most Wine users care about) is compiled with MSVC, so those details end up mattering a lot.
Post reply on HN