• Hexarei@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          7 months ago

          I beg you forgive my pedantic interjection, but … I posit that the original commenter is incorrect. it is absolutely native execution.

          The CPU is fetching and executing the instructions directly from memory, without any (additional) interpretation of code or emulation of missing instructions - Which is, by definition, native execution.

          What the compatibility layer “does” is provide a mapping of Windows system calls into the appropriate Linux system calls. Or, in other words, makes it so that calls to functions like CreateWindowEx() in the Win32 API have a (still native) execution path.

          The native execution requires you to install WINE, yes, but if we’re disqualifying it because “it requires you to install a package”, then we also consequently:

          • Add things like “print stuff”, “display graphical applications”, and “play audio” to the list of “things Linux can’t do”
          • Disqualifies Windows from “natively executing” any .NET applications (a Microsoft-built first-party framework), since .NET applications require you to install .NET.
          • JungleJim@sh.itjust.works
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            7 months ago

            You’re right, you are being pedantic.

            Edit: Actual response. You took time to type all that out, I should at least say why I disagree.

            WINE is a compatibility layer. A translator. It helps a non-native language speaker speak the native language. The whole reason WINE exists is to make a non-native executable execute outside of its native environment. Even if the code is very functionally similar to something like .NET, the function of WINE is to enable non-native code to run as though it were designed for Linux. Downloading WINE doesn’t suddenly make those .EXE files be retroactively designed with Linux in mind. It’s still not native code.