8 ms·
UTM: An Apple hypervisor with some unique extra abilities
- gorkish 3y agoUTM is pretty cool QEMU's x86 emulation is outrageously slow compared to Rosetta2. Is it theoretically be possible to hook Rosetta2 for full x86 machine emulation (like oldschool vmware did before VT)?
- toxik 3y agoAIUI Rosetta 2 works by translating as much of the code as possible ahead of time, so you don’t get delays translation happening online, and you get speculative execution etc. IOW It won’t work on a VM.
- tpetry 3y agoLast years macOS release added support for rosetta within linux vms.
- WatchDog 3y agoThe docs for those interested https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta https://developer.apple.com/documentation/virtualization/run...
- zeusk 3y agoThat's only for userspace apps. In fact even on Mac, only userspace code can be handled by rosetta2. For most applications this isn't a problem but a lot of games these days come with kernel components for anti-cheat.
- wtallis 3y agoI would be surprised if kernel-level third-party anti-cheat is a thing on macOS.
- kergonath 3y agoI cannot imagine a game whose installation instructions start with “first, reboot your computer and disable SIP” would be very popular.
- pjmlp 3y agoNot on macOS, specially since Apple decided that in the long term only userspace drivers/extensions are allowed for third parties.
- vbezhenar 3y agoI don't think that working with proprietary piece of code which is not even allowed to be used for anything but proprietary virtualization.framework is very interesting for those who can pull that kind of implementation. Theoretically: why not? Kernel is not something drastically different from userspace. Sure, some rules are different, but I don't think that it's completely impossible to adapt Rosetta to the kernel. But practically: I doubt it. qemu is not supporting even ordinary Rosetta, last time I checked, despite that fact that it should be pretty trivial to implement.
- doctoboggan 3y ago"Docker Desktop for Mac" as the option to use rosetta 2 to run linux/amd64 containers on apple silicon Macs.
- maxmouchet 3y agoRosetta is used to run the amd64 binaries, but not the (arm) kernel of the Docker VM.
- zeusk 3y ago> Theoretically: why not? Kernel is not something drastically different from userspace. Sure, some rules are different, but I don't think that it's completely impossible to adapt Rosetta to the kernel. It's not impossible but very infeasible since kernel has critical sections where you can't take an interrupt or fault (leading to panic); such code sitting at the translation boundary would not work.
- gorkish 3y agoThis is why I mentioned "old vmware" which before VT handled these types of critical sections through an interpreting emulator while executing as many of the x86 instructions as possible unmodified. That is to say, they already did the hard part of breaking out the tricky bits. I was kind of hoping maybe QEMU had a similar strategy for x86-machine-on-x86-usermode without requiring virtualization extensions that could just be executed directly through rosetta (on macos or linux)
- api 3y agoParallels has a way to use Rosetta2 inside an ARM64 Linux VM to run x64 binaries, but it can occasionally be unstable. Usually works fine and way faster than qemu.
- cube2222 3y agoI believe that is actually a recently-added feature of the Hypervisor.Framework, not sure if parallels uses it under the hood. It's also been in Docker Desktop for a few months now, thanks to that.
- mook 3y agoAs the other comment mentioned, it might be using the feature from hvf: https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta https://developer.apple.com/documentation/virtualization/run...
- abujazar 3y agoUTM is awesome. I use it daily, but mostly for such plain and boring tasks as running arm64 linux VMs on Apple Silicon : )
- saagarjha 3y agoUTM is a frontend to Apple’s Virtualization and QEMU, which itself can use Hypervisor when relevant
- havershank 3y ago[dead]
- dividedbyzero 3y agoI was able to get my old copy of Lightroom 4 to work using UTM to run Windows 11 ARM, then using Windows' equivalent of Rosetta to run the x86 Lightroom. Big fan of UTM, such a breath of fresh air coming from VirtualBox.
- rado 3y agoI was surprised how much slower it is than Parallels (Arm Windows on M1). Could it be improved?
- wpm 3y agoUTM is alright, but the GUI leaves a lot to be desired, which seems to be a commonality between desktop hypervisors; I have never liked Parallels and VMWare Fusion seems to be rotting on the vine and has its own equally baffling quirks. I would really like not having to shut down all of my VMs and close their windows to get the "library" window back open (shocker, some of us can and need to run more than one VM). I would really like to be able to see the settings of a VM, again, without having to shut down, find the library, and open the settings from there (yes, I know, I can't edit them while the VM is running, I still want to see the things!). It makes troubleshooting and complex configuration such a pain in the ass, that I usually give up.
- glhaynes 3y agoWow it really needs a Window > UTM (⌘O) menu. But in the meantime, try File > New… or Open… to get back to the "main" window.
- dang 3y agoRecent and related: UTM – Virtual Machines for iOS and macOS - https://news.ycombinator.com/item?id=37333404 https://news.ycombinator.com/item?id=37333404 - Aug 2023 (169 comments)
- shantara 3y agoI recently came across UTM when searching for a way to access a ext4 formatted SD card on macOS. Surprisingly, UTM with Arch VM was able to read and write the card through a USB card reader with zero friction or additional setup needed.