6 ms·
> Prerequisites Install QEMU So in other words, qemu runs at near-native speeds?
by est 4y ago
> Prerequisites Install QEMU
So in other words, qemu runs at near-native speeds?
- zweifuss 4y agoNot right now. Can be an order of magnitude slower compared to native. Depends a lot on the program and current task. Also, the QEMU defaults are not optimal.
- st3fan 4y agoYes, on recent MacOS it is mostly just an abstraction on top of the native Virtualization Framework.
- ricardobeat 4y agoNot if you’re running x86 emulation on an ARM host. It’s terribly slow. EDIT: This is from experience. When I started using a M1 mac, our docker builds on x86 images took up to 5x or 10x longer vs running on an arm64 image. Had slightly faster, but similar results running my own docker host on Lima, or podman, or building without docker inside a UTM host which also uses qemu.
- runeks 4y agoNo, it's decent performance. Minimum 25% of native, and even more using Rosetta: https://news.ycombinator.com/item?id=32149080 https://news.ycombinator.com/item?id=32149080
- ricardobeat 4y agoFor real world use cases like making cross-platform builds, 1/4 of native speed is pretty far from decent.
- jbverschoor 4y agoI don’t think that’s true. https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta https://developer.apple.com/documentation/virtualization/run...
- saagarjha 4y agoRequires an arm64 kernel. Rosetta in this context essentially replaces usermode QEMU.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- odo1242 4y agoWell, it can be. You can still emulate additional hardware with QEMU, and QEMU still has other backends (which it will use if you run a x86-64 OS on ARM macs).
- garaetjjte 4y agoIt's not abstraction, QEMU uses Hypervisor framework (which is equivalent to KVM). Virtualization framework is Apple own hypervisor (which is equivalent to QEMU).
- Veliladon 4y agoQEMU can use the MacOS virtualization framework layer to run a VM built for the same arch without going through any translation. From there you can register Rosetta as a runtime and use it to run x86-64 Linux apps on ARM64 if you want. (https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta?language=objc https://developer.apple.com/documentation/virtualization/run...)
- qeternity 4y agoWait, what? QEMU can pass x86 instructions directly to Rosetta without emulating an entire host OS?
- maattdd 4y agoIt does emulate the OS (it’s the point of running stuff in qemu ) but doesn’t translate the instructions
- jsjohnst 4y ago> It does emulate the OS (it’s the point of running stuff in qemu) The point of running stuff in qemu is to virtualize / emulate the hardware. You still need a “normal” OS inside qemu.
- dontlaugh 4y agoNo, QEMU runs an ARM VM. Inside that VM, Rosetta for Linux can be used to run x86 executables, just like on macOS.
- a-dub 4y agoso arm macbooks are still problematic for developers who use containers and x86 servers... it's still surprising to me that they did this as i always got the sense that developer word of mouth helped drive a lot of macbook adoption in the 2000s.
- 4y ago
- jbverschoor 4y agoWell yeah bc it uses https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta https://developer.apple.com/documentation/virtualization/run...