16 ms·
Show HN: QEMU front end for M1 and Intel Macs
- mikkelam 6y agoHow is the x86 performance on say windows and linux?
- osy 6y agoDo you mean the emulation performance on M1? In my experience Windows XP is “usable” and Windows 7 feels like a 10 year old desktop running with a spinning drive.
- notaplumber 6y agoLinux arm64/Windows 10 ARM should be near native, minus graphics acceleration. x86 will be about as slow as you would expect with QEMU. Pretty slow. There is no hardware assisted virtualization for x86 on ARM.
- m3nu 6y agoLooks good. How is the speed compared to vmware?
- Toutouxc 6y ago> UTM was created for macOS and only for Apple platforms And it shows, the UI is beautiful. Will try this out.
- unicornporn 6y agoThis is insane. Best software find in a long time. An open-source alternative to Fusion is very welcome for me. And, lovely work on the UI!
- chubs 6y agoThanks for creating this, it looks fantastic, I just bought it! I love that it's a nice layer over QEMU / Apple's Hypervisor, so i know the performance will be reasonable. One bit of feedback you might consider: Most of the VMs in your gallery are for ARM64, and the x86 one is quite an old version of Ubuntu. Would you consider making a couple more modern x86 versions? My requirement is to have an x86 VM for deployments to Lambda, cross compiling Rust using Docker on M1 simply doesn't work yet and I'm hoping your app will do the trick :) Thanks!
- groundthrower 6y agoI have the same requirement, but ended up building the final bundles to lambda in the cloud instead. However I am quite excited about the new container image support for lambda meaning I guess you do not have to compile for musl anymore.
- kristiandupont 6y agoHey, I need to thank you for this! This is what I use to run QEMU on my M1 Air. I had a few bumps setting it up but now it runs flawlessly. I SSH to it via VS Code and basically I have a fully functional Linux dev environment with MacOS as the UI, just the way I like it. Honestly, I haven't been this excited about a new setup since Moore's Law was in effect :-)
- sammorrowdrums 6y agoQEMU is amazing. I run Linux, ans being able to dockerize Windows with it, and set up a selenium testing environment I can run locally or on CI servers is genuinely mind-blowing. Headless chrome, Firefox plus a windows in docker setup means pretty great automated test coverage without relying on third party infra.
- mav3rick 6y agoJust to confirm - This project has a UI over Qemu which in turn uses this https://developer.apple.com/documentation/virtualization https://developer.apple.com/documentation/virtualization hypervisor API to create and manage VMs on a Mac ?
- osy 6y agoIt (QEMU) actually uses the older https://developer.apple.com/documentation/hypervisor https://developer.apple.com/documentation/hypervisor apis which has lower level control. QEMU provides device emulation and Hypervisor.framework provides access to CPU’s virtualization hardware. Virtualization.framework is the new macOS 11 api that emulates the entire system but has much worse device emulation support and also lacks framebuffer emulation (I think)
- mav3rick 6y agoRight, so the older API is akin to "/dev/kvm" and ioctls on Linux ?
- 6y ago
- therealmarv 6y agoOh very interesting. I only need Vagrant support and then I can fully switch to M1 in the future. Looks like this could be the successor for Virtualbox on Mac M1. Wonder if this also helps developing for x86 Docker too (which is a major pain point on M1 Mac).
- amelius 6y agoNice for Apple users but how/when can I run Mac and iOS applications on Linux?
- dividedbyzero 6y agoAFAIK you can't, and there's no indication that will change. You may be able to virtualize a whole macOS install, though that's pretty difficult even on Apple hardware (source: I tried several times, and didn't get it to work well)
- amelius 6y agoI think many open-source efforts are heading in the wrong direction. Let Apple make sure our software runs on their hardware, and let FOSS make sure that Apple software runs on FOSS platforms. Not the other way around.
- ngcc_hk 6y agoDream on one can. But sorry mate reality bite.
- wazzaps 6y agohttps://github.com/foxlet/macOS-Simple-KVM https://github.com/foxlet/macOS-Simple-KVM works pretty well for me (not for daily use though as it uses software rendering, but fine for compiling/testing apps)
- pabs3 6y agoUse this equivalent of Wine for macOS apps called Darling: https://www.darlinghq.org/ https://www.darlinghq.org/
- lolive 6y agoTry this: https://github.com/myspaghetti/macos-virtualbox https://github.com/myspaghetti/macos-virtualbox
- 6y ago
- josteink 6y agoSaw UTM for iOS, got excited, only to find out it's not available in the App Store, and I have no Mac to build it with. Oh well.
- _fzslm 6y agoYou can sideload it without a jailbreak using AltStore: https://getutm.app/install/ https://getutm.app/install/
- josteink 6y agoThats interesting. But it seems like the AltStore requires running a AltServer which is only available for Mac or Windows. It would be great if they provided a Linux build too. It is kind of ironic though that I need to bring up a QEMU VM to run the AltStore binary which lets me run QEMU on my phone :D
- qalmakka 6y agoThis is a very nice frontend. Someone should definitely port it or rewrite it for Linux. All the existing UIs are either ugly or use libvirt, which is a nasty pile of hacks that has no place on a desktop machine.
- captn3m0 6y agoNot sure what GNOME Boxes uses, but it looks good: https://wiki.gnome.org/Apps/Boxes https://wiki.gnome.org/Apps/Boxes
- sanxiyn 6y agoBoxes uses libvirt too. (It would be foolish not to.)
- osy 6y agoThanks but I think a port is virtually impossible as this was designed in SwiftUI and depends extensively on Apple APIs. GNOME Boxes is a good UI on Linux.
- pm215 6y agolibvirt has put a lot of time into figuring out how to run QEMU in the most secure and performant way (specific low-privilege user, seccomp, all the right options for virtio, etc, etc). If you aren't using it then that's a lot of effort to reinvent, and you probably missed something out.
- cozzyd 6y agoIs this legal to deploy on the Mac app store? Not sure if the Mac app store has the same license incompatibility issues as the iOS app store.
- stu2b50 6y agoafaik there is nothing preventing this from being on the mac app store. The iPhone app store is so strict because they really want to keep the platform locked down, with no possibility for 3rd party app stores. Although even then there's weird exceptions - Roblox seems to be allowed. That cat is out of the bag on MacOS, though, and at least for now it seems Apple is keeping it that way - iPadOS is going to be their locked down work OS.
- cozzyd 6y agoWell, it seems controversial, to say the least (unless qemu and other GPL components are not actually bundled? I don't know... I don't have a Mac): https://apple.stackexchange.com/questions/6109/is-it-possible-to-have-gpl-software-in-the-mac-app-store https://apple.stackexchange.com/questions/6109/is-it-possibl... It's possible that those replies are out of date and the Mac App Store TOS have changed.
- ulzeraj 6y agoWhere have you been OP? I've been waiting for years. I will totally pay for this. Tired of paying yearly subscriptions to Parallels Desktop Lite which is another frontend to the OS hypervisor.
- eliaskg 6y agoRandom question but when I tried to install Debian on this I got an error that no cdrom drive was detected. Is there a workaround?
- bni 6y agoUse the Debian netinst iso instead?
- eliaskg 6y agoI used exactly that
- mbreese 6y agoWhen the Debian install asks you what device to use, give it /dev/sda or /dev/vda. For some reason /dev/cdrom wasn't working for me either. I ended up switching the ISO's device to virtio and tried /dev/vda and it worked. The ISO was on /dev/vda and the target disk image was on /dev/vdb. Just make sure you install the bootloader on the disk image. Then when I removed the ISO, everything was just fine.
- lukeh 6y agoLooks like it's built with SwiftUI too, nice!
- Tepix 6y agoNice page, very clean and straightforward, yet not too dull. Cool project!
- wolfhumble 6y agoWhich parts of QEMU on M1 are hardware accelerated?
- saagarjha 6y agoEmulation, which goes through a hypervisor. I don’t believe graphics are yet.
- als0 6y agoTechnically the AArch64 instruction set and the memory system are the only parts that are 'hardware accelerated'. QEMU handles everything else in software.
- notaplumber 6y agoSpecifically arm64 guests, otherwise it's just QEMU's TCG.
- sigjuice 6y ago$ nm /Applications/UTM.app/Contents/Frameworks/libqemu-aarch64-softmmu.utm.dylib | grep -i hv_ U _hv_vcpu_create U _hv_vcpu_destroy U _hv_vcpu_get_reg U _hv_vcpu_get_sys_reg U _hv_vcpu_run U _hv_vcpu_set_pending_interrupt U _hv_vcpu_set_reg U _hv_vcpu_set_sys_reg U _hv_vcpu_set_vtimer_mask U _hv_vcpus_exit U _hv_vm_create U _hv_vm_map U _hv_vm_protect U _hv_vm_unmap https://github.com/utmapp/qemu/tree/apple-silicon https://github.com/utmapp/qemu/tree/apple-silicon https://developer.apple.com/documentation/hypervisor/apple_silicon?language=objc https://developer.apple.com/documentation/hypervisor/apple_s...
- isodev 6y agoJust bought it on the app store, very nicely done!
- webmobdev 6y agoThank you for making this available for download from the website too, and not making it app store exclusive. Do you have any plans to support macOS Mojave? What is needed to add GPU support in the future?
- willswire 6y agoFrom one dev to another, can't thank you enough! Just bought it on the App Store to support you.
- thrrck 6y agoVery nice! Any way to 'buy'/donate without giving 30% to Apple?
- bluedino 6y agoAny benchmarks?
- reichardt 6y agoSeems to support QXL graphics driver and SPICE? I ran into problems compiling QEMU on macOS with the above mentioned. Did you solve this? https://stackoverflow.com/questions/59636198/how-to-compile-qemu-with-spice-support-for-macos https://stackoverflow.com/questions/59636198/how-to-compile-...
- tambourine_man 6y agoThis is great, thank you. Is it currently possible to have snapshots, like in VirtualBox, for instance?
- osy 6y agoNot yet but it’s planned for the future but after other higher priority features like USB, network bridging, and running from other paths.
- mvniekerk 6y agoWondering if there could be a Metal -> Vulkan -> Zink -> OpenGL way of doing HW acceleration. Or Metal -> Vulkan -> DXVK -> D3D for Windows. AFAIK VirtualBox used some of Wine's D3D code to do D3D on Virtualbox.
- osy 6y agoIn theory virgil3d is the way to go as it has existing support in QEMU but there hasn’t been any work porting it to macOS/Metal as of this post.
- deleted 6y ago[deleted]
- wolfium3 6y agoWhat does UTM stand for? Couldn't find it on google or in the FAQ...
- osy 6y agohttps://en.wikipedia.org/wiki/Universal_Turing_machine https://en.wikipedia.org/wiki/Universal_Turing_machine
- tpetry 6y agoThe commercial virtualisation tools from Parallels and VMware support creating macOS guests on a macOS host by making a clean install, i guess from the macos recovery system/service? Are you planning on macOS guests too? It's sometimes really nice to test a macOS application on an absolutely clean macOS install to ensure it's not dependent on any library on your macOS development machine.
- osy 6y agomacOS support isn’t perfect in QEMU but there’s been people who got it working: https://khronokernel.github.io/apple/silicon/2021/01/17/QEMU-AS.html https://khronokernel.github.io/apple/silicon/2021/01/17/QEMU...
- proyb 6y agoRunning UTM with Ubuntu Server 20.04 ARM64 ISO image, it prompt UEFI and I couldn't install like it did work a few month ago.
- kljsandjb 6y agoWell it is great in many ways, but today I downloaded it and played a bit and found it hard to use compared with “directly using qemu cli” or vmware fusion for Mac free edition, but I am looking forward to its improvements in the future. Please do keep the good work ;-) thanks!
- pdimitar 6y agoThe price isn't that big, I have to wonder if this product will be supported for the next, say, 5 years? I am willing to buy. Just wondering what the author's plans are.
- osy 6y agoPlease try out the free download and only purchase it if you feel that you’ve already gotten value from it and would like to support the project. There is no difference in the binary for the free and paid version. It’s really hard to promise anything 5 years ahead as the intent is not to make money off of it.
- pdimitar 6y agoI did not realize there was a free version. Thank you!
- sirn 6y agoAlso worth mentioning that UTM developers has been contribution patches to QEMU to get TCG (code emulation layer) to work under iOS / M1 Mac[1] as well (whereas I think TCG is still broken as of latest QEMU release due to mprotect[2]). So huge, huge thanks for this as well! [1]: https://lore.kernel.org/qemu-devel/20210126012457.39046-1-j@getutm.app/ https://lore.kernel.org/qemu-devel/20210126012457.39046-1-j@... [2]: https://lore.kernel.org/qemu-devel/161259505296.24527.7729976640303273029.malonedeb@wampee.canonical.com/ https://lore.kernel.org/qemu-devel/161259505296.24527.772997...
- sigjuice 6y agoThere's a tiny patch mentioned in your second link that makes TCG work again on M1 Macs https://bugs.launchpad.net/qemu/+bug/1914849/comments/3 https://bugs.launchpad.net/qemu/+bug/1914849/comments/3 $ qemu-system-alpha -nographic PCI: 00:00:0 class 0300 id 1013:00b8 PCI: region 0: 10000000 PCI: region 1: 12000000 PCI: 00:01:0 class 0200 id 8086:100e PCI: region 0: 12020000 PCI: region 1: 0000c000 PCI: 00:02:0 class 0101 id 1095:0646 PCI: region 0: 0000c040 PCI: region 1: 0000c048 PCI: region 3: 0000c04c >>>
- Exuma 6y agoI thought virtualization doesn't work with M1? Like docker and such... did something change?
- stu2b50 6y agoNo, that was never the case. Even Docker is running, albeit still in WIP status (https://docs.docker.com/docker-for-mac/apple-m1/ https://docs.docker.com/docker-for-mac/apple-m1/).
- saagarjha 6y agoA12Z didn’t do virtualization. M1 does it fine.
- eyelidlessness 6y agoIt's understandable you may have missed some information, so to correct the record (and ensure other readers are aware), Apple highlighted virtualization in their announcement of M1, specifically highlighting Linux. It's been supported from the moment it was public.
- Exuma 6y agoWell WTF... I know 100% for a fact I saw this somewhere, that's why I didn't buy one............. can you think of what the article I read might have been referencing? It might have even been a huge thread on HN how developers/programmers were waiting a year+ to buy it until certain things were supported.
- eyelidlessness 6y agoI think maybe you saw a bunch of FUD? I’ve seen a ton on here. There was also a lot of speculation that Apple would quash booting other OSes, and maybe that got into the mix? FWIW I’m a lifelong Apple user and even if I had the budget I’d hold off a year on ARM Macs, because I’ve learned to avoid first revision models in general.
- acdha 6y ago
- AshleighBasil 6y agoI use Parallels. What is the benefit of QEMU compared to Parallels?
- osy 6y agoIt’s FOSS :) other than that, Parallels only does virtualization and does it really well. UTM/QEMU does virtualization not-as-well-but-still-pretty-good in addition to emulation.
- jzer0cool 6y agoJust a silly question here but what's the UTM acronym meaning? I have been a QEMU user for over a decade now. Virtualization was fun back then, but so slow forcing me to experiment with many. All is so decent now.
- jibbers 6y agoThis looks amazing! Can us dinosaurs on macOS Catalina expect a compatible build in the future?