News, tips, advice, support for Windows, Office, PCs & more. Tech help. No bull. We're community supported by donations from our Plus Members, and proud of it
Home icon Home icon Home icon Email icon RSS icon
  • Mac Silicon : What about Windows?

    Posted on Alex5723 Comment on the AskWoody Lounge

    Home Forums AskWoody support Non-Windows operating systems macOS Mac Silicon : What about Windows?

    Viewing 2 reply threads
    • Author
      Posts
      • #2313266 Reply
        Alex5723
        AskWoody Plus

        What about Windows?

        …But while Apple Silicon Macs can run existing Mac, iPhone, and iPad software, the new architecture cannot immediately run applications built for x86 operating systems besides macOS, and Rosetta 2 doesn’t offer any help on this front. The ability to run Windows software was a small part of the success of Intel-based Macs, so some users—particularly those with certain professional workflows—will see that as a loss…….

        As for Windows running natively on the machine, “that’s really up to Microsoft,” he said. “We have the core technologies for them to do that, to run their ARM version of Windows, which in turn of course supports x86 user mode applications. But that’s a decision Microsoft has to make, to bring to license that technology for users to run on these Macs. But the Macs are certainly very capable of it.”..

        1 user thanked author for this post.
      • #2313313 Reply
        OscarCP
        AskWoody Plus

        Besides running MS Windows, perhaps Office and similar applications software “for M1”, is it not possible to run “Intel” Windows as is in a VM machine on M1 Macs? If it is (and I don’t know this), whether MS develops an M1 version of its software or not would be less important. Although for users that need high-speed execution of such software that might be a problem. But many users do not need the highest possible speed and probably could live with somewhat longer execution times. If so, the incentive for MS to produce an ARM version might be less. Unless there is a big demand from Windows’ users for a switch over from Intel to ARM.

        Windows 7 Professional, SP1, x64 Group W (ex B) & macOS Mojave + Linux (Mint)

        1 user thanked author for this post.
      • #2313337 Reply
        Nathan Parker
        AskWoody_MVP

        It’s not possible to run a Windows VM on an Apple Silicon Mac at the moment. The performance would take too much of it hit (similar to when I tried running Windows VMs on a PowerPC Mac using Virtual PC, the performance was horrendous).

        For casual Windows apps, CrossOver is running well on Apple Silicon Macs through Rosetta 2.

        Nathan Parker

        • #2313351 Reply
          Ascaris
          AskWoody_MVP

          The previous claim was that M1 was able to run x86 software at ~79% the speed of native ARM code, which still put it above what Intel Macs can do… but as always, the devil may be in the details.

          For those who don’t get how all of this fits together… Virtualization isn’t emulation, and neither is WINE.

          Emulation translates CPU instructions from one CPU architecture, on the fly, into the instructions of another architecture. This comes at a significant performance hit, unavoidably, as the work of translating each instruction invokes a lot of overhead. If the emulated system is slower than the native hardware running the emulator, you can get good results, like with emulators for various game consoles. I’ve played a bunch of NES, Sega Genesis, Atari 2600, Commodore 64, and arcade games on emulators, and they’ve generally been flawless, as the PC running the emulator was vastly more powerful than what the software was written for.

          When you are talking about emulating a platform that isn’t slower, or isn’t that much slower, you can have issues. Sometimes it will work well most of the time, but in specific areas where the program run on the emulator expects to run on a CPU that is optimized for a certain kind of workload, but the CPU running the emulator (or the emulator itself) is not optimized in that same way, it can slow down for certain tasks.

          WINE is a compatibility layer meant to run applications from the same architecture but from another OS. You can run Windows x86 programs on an x86 Linux PC or an x86 Mac, but WINE itself (including variants like Crossover) cannot make x86 Windows programs run on a M1 Mac, since the M1 speaks ARM and doesn’t know x86.

          WINE generally is able to operate with little or no performance loss (depending on the task) since it doesn’t have to translate every instruction into a dissimilar one (or several dissimilar ones; it’s often not a 1:1 translation, especially when going from a CISC architecture like x86 to a RISC architecture like ARM). It just needs to translate the APIs from Windows to whatever the underlying OS is (Linux, Mac, or even a different Windows).

          In some cases, WINE comes with significant performance losses, which is often a function of the lack of knowledge the WINE devs have over the specific ways Windows works internally, or the immature state of the code, which will improve in time as it is cleaned up. Running DirectX9 or 11 programs on WINE used to cause a significant drop in frame rate, but DXVK changed that, and now the frame rate difference is minimal, and in some games, it’s actually higher in WINE than in actual Windows.

          Virtualization is similar to compatibility layers in that it allows the user to run operating systems within the VM that are otherwise compatible with that CPU architecture if run on bare metal, but it runs an entire actual operating system in the VM rather than translating APIs at the OS level, though there is plenty of translation going on between the virtualized devices (the virtual graphics card, etc) and the host OS.

          You can’t have a virtual x86 PC running on ARM with just the VM software, since ARM can’t use x86 binaries natively. But Rosetta 2 is emulation, and with emulation, you can go from anything to anything, at least in principle, though in a lot of cases the performance hit renders it unusable. Rosetta 2 (from what I’ve gathered here) emulates x86 Macs and runs on M1 Macs. That takes care of the difference in architecture, but it’s still Mac to Mac, and to run Windows programs, you’d need an additional layer of translation. That’s why you get the example of a Windows x86 program running on WINE (which translates it to Mac x86), and that in turn is running on Rosetta 2 (which translates the Mac x86 to Mac M1).

          As Apple continues to develop Rosetta 2, its performance and compatibility would be expected to increase, just as it has with WINE.

          It should be noted that (like the x86 Windows emulator for ARM) this only allows 32-bit x86 programs to run on ARM, not 64-bit ones. I am not sure if that will change in time.

          As far as I know, the x86 Windows ARM emulator is only available preinstalled on ARM Surface devices, and isn’t available for, say, installation on a M1 Mac. That’s what the excerpt was referring to in the last few sentences.  If that were made available, it would not be necessary to have two translation levels, as the user of the M1 Mac could simply run ARM Windows on it the same way that users of Intel Macs can do that with x86 Windows now.

          Group "L" (KDE Neon Linux 5.20.3 User Edition)

          3 users thanked author for this post.
    Viewing 2 reply threads

    Please follow the -Lounge Rules- no personal attacks, no swearing, and politics/religion are relegated to the Rants forum.

    Reply To: Mac Silicon : What about Windows?

    You can use BBCodes to format your content.
    Your account can't use Advanced BBCodes, they will be stripped before saving.