News for hackers. Stuff that matters.
Re:Wine 7.0 by acdha on Tuesday January 18, 2022 @04:39PM (#29986312)
I'm hoping that I'm correctly interpreting the WoW64 portion of the notes as meaning that I could run a 32-bit x86 Windows binary using the 64-bit Wine on ARM. I don't have a common need for this but I've had a couple of cases where I needed to test compatibility with something ancient and it would have been great to be able to install something in my development environment. In one of the cases, it was a 64-bit executable with a 32-bit installer so the actual program worked as long as you could copy a previous install.
Re:Wine 7.0 by giomasce on Wednesday January 19, 2022 @03:22AM (#29991173)
You can't do that yet, but it is a step in that direction. The general idea is that Wine is getting organized on two layers: the PE .dll libraries, which are similar to a Windows userspace, and the Unix libraries, which act as a sort of "kernel". The interface between the two is standardized and is kind of close to a system call interface (we actually call those "syscalls", even though what I can "kernel" is still a bunch of userspace .so libraries, so the processor is not really switched to kernel mode, and there is no hard enforcement of boundaries; also, many of these syscalls are much higher level than what you'd usually expect from a real kernel-userspace boundary).

Once all modules are converted (there are still a few missing, unfortunately the hard ones, but people are working on those), the PE world interact with the external system only through this "syscall" interface. The Unix world is required to be compiled for the external system's architecture, but the PE world can be whatever you want, provided that you do the appropriate things at the syscall interface.

For example, you can have 32 PE libraries and 64 bit Unix libraries, and at the syscall interface you switch the processor back and forth between 32 and 64. Or you can have x86 PE and ARM (or whatever) Unix, and you enable/disable an emulator at syscalls.

Re:Wine 7.0 by The_Colonel on Tuesday January 18, 2022 @04:48PM (#29986446)
Wine Is Not an Emulator, so I doubt it will be able to run x86 apps on ARM.
Re:Wine 7.0 by ogogmad on Tuesday January 18, 2022 @04:55PM (#29986547)
This is a semantics debate, but it kind of is an emulator. Instead of emulating a CPU, it emulates the Windows API. That's obviously a major difference: One is inherently slower, while the other is inherently more complicated.

WINE originally stood for "Windows Emulator", but for trademark reasons it was changed to "Wine Is Not An Emulator". That's giving you some mixed messages now, isn't it? [edit] I just checked Wikipedia, and that's not true -- the name wasn't changed due to a trademark problem, it was changed due to a genuine confusion about what the term "emulator" meant.

Re:Wine 7.0 by magpi3 on Tuesday January 18, 2022 @07:16PM (#29988150)
It implements the Windows API.
Re:Wine 7.0 by account42 on Thursday January 20, 2022 @03:59AM (#30006504)
And the Windows API is defined as "whatever Windows does", which Wine emulates.
Re:Wine 7.0 by _joel on Tuesday January 18, 2022 @04:54PM (#29986528)
> - The new Apple Silicon Macs are supported, including running x86-64 binaries under Rosetta 2.

Depends which ARM :)

Re:Wine 7.0 by Findecanor on Tuesday January 18, 2022 @05:22PM (#29986903)
Apple Silicon has special support for running ARM code with the "Total Store Order" memory model of x86.

JIT-compiling emulators for other ARM processors otherwise need to be stuff the code full of memory fence instructions to be able to utilise multiple cores properly. Optimising those away can be hard.

Re:Wine 7.0 by carlhjerpe on Tuesday January 18, 2022 @05:00PM (#29986612)
Not really though, it's just another layer which isn't wine. They might put effort in to help Rosetta translate, but wine is not an emulator.
Re:Wine 7.0 by stuaxo on Tuesday January 18, 2022 @07:51PM (#29988419)
I think some bits got added from the point where they got Wine working on OSX PPC back in the day.
Re:Wine 7.0 by acdha on Tuesday January 18, 2022 @04:58PM (#29986579)
I'm aware of what the acronym originally meant, but this was listed as working in the 6.x series for 64-bit x86 apps.
Re:Wine 7.0 by heavyset_go on Tuesday January 18, 2022 @07:27PM (#29988227)
You can setup binfmt_misc to run x86 Windows binaries with Wine and Qemu on other architectures like ARM.
Re:Wine 7.0 by dtech on Tuesday January 18, 2022 @05:26PM (#29986968)
That probably won't work, WoW64 is running x86-64 on x86-32. You can combine Wine with QEMU to run x86-32 on AArch64 though.
Re:Wine 7.0 by daypay on Tuesday January 18, 2022 @04:48PM (#29986444)
That’s how I interpreted it as well for running 32-bit apps on 64-bit Host.