Parallels, VMWare confirm Apple M1 support amid silence from other virtualization companie...

13»

Comments

  • Reply 41 of 47
    I can't help but wonder if Apple/VMware/Parallels have some insider information on improved/more mainstream support from Microsoft for Windows 10 on ARM.

    I expect that running Windows VMs by far the most popular use of virtualization on the Mac platform, with Linux being a distant second and other operating systems (including BSD and macOS itself) being an even more distant third.
    edited November 2020
  • Reply 42 of 47

    mjtomlin said:
    1. Rosetta is not emulation, it’s translation. It translates x64 code to ARMv8 code and hooks that translated code into native APIs. It cannot be used to emulate an x86 system.

    2. At no point did Apple say they would disallow any kind of emulation.

    3. It won’t be too long before someone develops an actual x86 hardware emulator. (See qemu.org) It is obviously something that will eventually be needed by many users.
    Binary translation is a technology that can be used for emulation (as well as other things; for example VMware originally used x86-to-x86 binary translation to virtualize "non-virtualizable" x86 instructions before VT-x was widely available.) I would suggest that Rosetta does in fact qualify as an emulator, but at the ABI level rather than the hardware level.

    As another example of binary translation used in emulators, the Dolphin emulator for the Wii/GameCube uses dynamic binary translation to accelerate its PowerPC CPU emulation.
    edited November 2020
  • Reply 43 of 47
    mr. hmr. h Posts: 4,870member
    jdb8167 said:
    They seem to be getting there with Windows on Arm and their Win32 translation/emulation software. They might still abandon it since it is never going to be a major revenue source but so far they seem to be willing to carry on. I think that allowing a VM on Apple Silicon to run a version of Windows on Arm might actually help their cause. It is a made to order market for their less than successful Arm OS. The fact that they have a Win32 translator/emulator would allow ASi Macs immediate access to the Windows software library. And since the M1 is so much faster than anything that Microsoft has access to, it might actually make their software look relatively good. It's a win/win.
    Agreed. For the time being, they appear committed given that they will be bringing x64 translation/emulation too. I think there's a significant non-zero chance that over the next few years the PC side will fragment into ARM and x86-based machines, and that Apple Silicon Macs will be a significant contributor to that, assuming that virtualisation for Windows 10 on ARM works well on Apple Silicon Macs. Given Intel's issues with processor manufacturing, it's conceivable that in a couple of chip generations x86-compiled apps running on ARM machines are just as fast or faster than when running natively on x86 machines.

    I wonder if Intel themselves are considering making ARM-based processors?
  • Reply 44 of 47
    melgrossmelgross Posts: 33,510member
    mr. h said:
    melgross said:
    mr. h said:
    melgross said:
    Not thrilled about Windows on ARM coming to the Mac, assuming it does. It offers nothing. It’s not Windows in that it doesn’t run any Windows software that isn’t recompiled for it.
    My understanding is that this isn't true - it has a translation layer just like Rosetta 2, so you can run x86 apps without a recompile. At least, that's what the Ars article I linked to above states.
    No, that’s incorrect. You need to compile for it.
    Wrong. This is Windows 10 on ARM we're talking about, not Windows RT. Windows 10 on ARM includes a translation layer enabling it to run most x86 programs unmodified:

    "Windows 10 on Arm is a full-fledged member of the Windows 10 family, capable of running most Windows desktop apps unmodified". source: https://www.zdnet.com/article/windows-10-on-arm-what-you-need-to-know-before-you-buy-a-surface-pro-x/

    "Windows 10 on ARM can run x86 apps". source: https://www.theverge.com/2018/2/19/17027026/microsoft-windows-10-on-arm-apps-games-limitations-support

    And, direct from the horse's mouth:

    "Emulation for x86 apps makes the rich ecosystem of Win32 apps available on ARM. This provides the user the magical experience of running an existing x86 win32 app without any modifications to the app.", https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation
    All of these attempts failed before. This is just the last attempt. You need to compile for it. Period.
  • Reply 45 of 47
    mr. hmr. h Posts: 4,870member
    melgross said:
    mr. h said:
    melgross said:
    mr. h said:
    melgross said:
    Not thrilled about Windows on ARM coming to the Mac, assuming it does. It offers nothing. It’s not Windows in that it doesn’t run any Windows software that isn’t recompiled for it.
    My understanding is that this isn't true - it has a translation layer just like Rosetta 2, so you can run x86 apps without a recompile. At least, that's what the Ars article I linked to above states.
    No, that’s incorrect. You need to compile for it.
    Wrong. This is Windows 10 on ARM we're talking about, not Windows RT. Windows 10 on ARM includes a translation layer enabling it to run most x86 programs unmodified:

    "Windows 10 on Arm is a full-fledged member of the Windows 10 family, capable of running most Windows desktop apps unmodified". source: https://www.zdnet.com/article/windows-10-on-arm-what-you-need-to-know-before-you-buy-a-surface-pro-x/

    "Windows 10 on ARM can run x86 apps". source: https://www.theverge.com/2018/2/19/17027026/microsoft-windows-10-on-arm-apps-games-limitations-support

    And, direct from the horse's mouth:

    "Emulation for x86 apps makes the rich ecosystem of Win32 apps available on ARM. This provides the user the magical experience of running an existing x86 win32 app without any modifications to the app.", https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation
    All of these attempts failed before. This is just the last attempt. You need to compile for it. Period.
    Come on man! I linked directly to Microsoft's own website, where it states quite clearly that Windows 10 on ARM includes a translation layer that allows it to run x86 apps without a recompile. Just admit you made a mistake unless you want to look like a fool.

    Here's a YouTube video from the Verge reviewing the Surface Pro X, where they show it running 32-bit x86 programs (time 4:37 to 6:00). Yes, the emulation is slow, so if you want fast performance, you need a native version:



    edited November 2020
  • Reply 46 of 47
    mjtomlinmjtomlin Posts: 2,673member
    corp1 said:

    mjtomlin said:
    1. Rosetta is not emulation, it’s translation. It translates x64 code to ARMv8 code and hooks that translated code into native APIs. It cannot be used to emulate an x86 system.

    2. At no point did Apple say they would disallow any kind of emulation.

    3. It won’t be too long before someone develops an actual x86 hardware emulator. (See qemu.org) It is obviously something that will eventually be needed by many users.
    Binary translation is a technology that can be used for emulation (as well as other things; for example VMware originally used x86-to-x86 binary translation to virtualize "non-virtualizable" x86 instructions before VT-x was widely available.) I would suggest that Rosetta does in fact qualify as an emulator, but at the ABI level rather than the hardware level.

    As another example of binary translation used in emulators, the Dolphin emulator for the Wii/GameCube uses dynamic binary translation to accelerate its PowerPC CPU emulation.

    Yes, while emulators do perform some type of translation to speed up certain types of code, Rosetta does not emulate an x64 CPU, it is specifically optimized to translate macOS x64 code to macOS ARMv8 code so that it can run directly on Apple Silicon Macs.

    An emulator would have to emulate all the other parts of an x86 chipset and hardware that is non-existent in an Apple Silicon Mac. x86-64 operating systems expect certain hardware to exist in order to boot and run properly. That is the main job of an emulator - to emulate that hardware in software - after that, then yes, to speed up execution of code, some of it could be translated into native code.

    I believe at some point Craig actually said that Rosetta could not be used in that capacity - not that it wasn't allowed, but that it was just not possible.
    edited November 2020
  • Reply 47 of 47
    melgrossmelgross Posts: 33,510member
    mjtomlin said:
    corp1 said:

    mjtomlin said:
    1. Rosetta is not emulation, it’s translation. It translates x64 code to ARMv8 code and hooks that translated code into native APIs. It cannot be used to emulate an x86 system.

    2. At no point did Apple say they would disallow any kind of emulation.

    3. It won’t be too long before someone develops an actual x86 hardware emulator. (See qemu.org) It is obviously something that will eventually be needed by many users.
    Binary translation is a technology that can be used for emulation (as well as other things; for example VMware originally used x86-to-x86 binary translation to virtualize "non-virtualizable" x86 instructions before VT-x was widely available.) I would suggest that Rosetta does in fact qualify as an emulator, but at the ABI level rather than the hardware level.

    As another example of binary translation used in emulators, the Dolphin emulator for the Wii/GameCube uses dynamic binary translation to accelerate its PowerPC CPU emulation.

    Yes, while emulators do perform some type of translation to speed up certain types of code, Rosetta does not emulate an x64 CPU, it is specifically optimized to translate macOS x64 code to macOS ARMv8 code so that it can run directly on Apple Silicon Macs.

    An emulator would have to emulate all the other parts of an x86 chipset and hardware that is non-existent in an Apple Silicon Mac. x86-64 operating systems expect certain hardware to exist in order to boot and run properly. That is the main job of an emulator - to emulate that hardware in software - after that, then yes, to speed up execution of code, some of it could be translated into native code.

    I believe at some point Craig actually said that Rosetta could not be used in that capacity - not that it wasn't allowed, but that it was just not possible.
    I’m not so sure about that, at least in a roundabout way. We do know that Parallels is working on it. There’s no reason it wouldn’t work. That’s very different than having x86 Windows run directly on Rosetta 2. How much of a speed hit would it take? Well, if they can get it working well, it might not take much at all.
Sign In or Register to comment.