Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
UTM: An Apple hypervisor with some unique extra abilities (theregister.com)
82 points by mikece on Sept 29, 2023 | hide | past | favorite | 24 comments


Recent and related:

UTM – Virtual Machines for iOS and macOS - https://news.ycombinator.com/item?id=37333404 - Aug 2023 (169 comments)


I 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.


UTM 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)?


AIUI 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.


Last years macOS release added support for rosetta within linux vms.



That'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.


I would be surprised if kernel-level third-party anti-cheat is a thing on macOS.


I cannot imagine a game whose installation instructions start with “first, reboot your computer and disable SIP” would be very popular.


Not on macOS, specially since Apple decided that in the long term only userspace drivers/extensions are allowed for third parties.


Parallels 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.


As the other comment mentioned, it might be using the feature from hvf: https://developer.apple.com/documentation/virtualization/run...


I 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.


I 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.


"Docker Desktop for Mac" as the option to use rosetta 2 to run linux/amd64 containers on apple silicon Macs.


Rosetta is used to run the amd64 binaries, but not the (arm) kernel of the Docker VM.


> 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.


This 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)


UTM 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.


Wow it really needs a Window > UTM (⌘O) menu. But in the meantime, try File > New… or Open… to get back to the "main" window.


UTM is a frontend to Apple’s Virtualization and QEMU, which itself can use Hypervisor when relevant


UTM is awesome. I use it daily, but mostly for such plain and boring tasks as running arm64 linux VMs on Apple Silicon : )


I 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.


I was surprised how much slower it is than Parallels (Arm Windows on M1). Could it be improved?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: