8 ms·
Cheetah: A Lightweight Virtual Machine Manager for macOS
- rank0 3y agoWhich macOS vmm has a nice cli or declarative VM definitions? I haven’t found any solution I like all that much…
- naikrovek 3y agohttps://github.com/cirruslabs/tart https://github.com/cirruslabs/tart or brew install tart (this gets you the last open source version)
- darcyliu 3y agoCheetah utilizes the cutting-edge Virtualization.framework technology to offer an exceptional experience in creating and managing virtual machines for both macOS and Linux-based operating systems.
- smcleod 3y agoSo - the default macOS virtualisation?
- depr 3y ago'kdrag0n wrote here https://news.ycombinator.com/item?id=36189550 https://news.ycombinator.com/item?id=36189550 that Virtualization.framework isn't really much better than QEMU. What do you think?
- smcleod 3y agoPersonally I find Vzf faster with less resource overhead than QEMU, but I've had some issues when running nodejs applications inside it (specifically when using the vz backend on colima).
- saagarjha 3y agoVirtualization uses the same Hypervisor backend that QEMU does. There’s not much difference in compute performance, and devices depend on the quality of their drivers.
- kdrag0n 3y agoI do think Virtualization.framework is generally better overall, for what it's worth — just not the panacea that people make it out to be sometimes :) My main point was that Apple has few inherent advantages over third-party VMMs like QEMU; it just happens to be better than the current off-the-shelf alternatives. (Apple's restrictions around Rosetta and private ISA extensions are an exception, making it significantly less appealing to use anything else in practice.) If not for Rosetta I would've most likely written (or at least made plans to write) a custom VMM forked from an OSS one for OrbStack. My early experiments have shown that quite a few improvements are possible.
- top_sigrid 3y agoAny advantages/features this offers over UTM?
- millzlane 3y agoI'm not sure, but I just tested and my kali linux and mac os UTM VMs both started instantly.
- dinkblam 3y agothere seem to be a large number of wrappers around Apple's ARM Virtualization.framework: VirtualBuddy, Viable, Tart, vz, virtualOS, Virtual Machines Hub, Cheetah, etc, etc not sure we need yet another one. a comprehensive comparison of all of them would be nice.
- darcyliu 3y agoHi all, thank you all for the comments, suggestions, and the questions. Yes, Cheetah is just another GUI wrapper of the Virtualization.framework. It was mainly created for my personal needs. The original version was modified from Apple’s sample code with the Objective-C version in 2022. I want it to be able to run in the background, managed from the Menu Bar, and easily configurate the settings, not only for the number of compute units or memory size, but more importantly, the hard disk size. Cheetah is an updated version that I developed this summer, starting around Aug 10th with SwiftUI. As a developer, I always strive to learn new stuff every year. So basically speaking, when compared to other existing solutions based on Virtualization.framework, there isn't much difference, unless the feature could make my life easier (e.g., detecting the assigned IP address, keeping the instance running in the background after closing the GUI window). I spent around two or three hours after work every day in the past two weeks to make it available for download from the Mac App Store. I know there are just a few people still making Mac Apps since people are more likely to pay for and install apps on their phones. I do not expect this app to make me rich, but I need to pay the Apple Developer account bills every year. So, the subscription price is $4.99 per year (not monthly) if you want to run more than two instances (please note that due to Apple’s license, you can only run two macOS virtual instances at the same time; subscribing to Cheetah does not enable you to bypass this restriction). That means $500 is enough for you to use it for 100 years. As I said, it is not something to make big money, and I haven’t spent too much time on it so far. The product description is generated by ChatGPT since I am not a native English Speaker, and the Logo is generated by stable diffusion. I would appreciate it if anyone could help with the docs or app Logo. All the remaining icons are from SF Symbols. I would like to keep it as small as possible (as you know Apple’s storage is expensive) to expose macOS’s Virtualization feature to everyone in a simple way as a gift (for free within two instances). Currently, Cheetah has about 6000 lines of code, with 55% written in Swift and 45% in Objective-C. I’ll continue to keep it small and simple, as light as possible. I won’t add new features for running other guest OS unless Virtualization supports it, as there are already many other tools like UTM that already support it. I might invest some time in the future to make it work for Apple silicon to run FreeBSD if I have the time. Please feel free to comment, provide suggestions, or ask questions.
- janaagaard 3y agoThis page mentions x86_64. Does this mean that I can choose Windows as the guest OS? https://macspot.net/features.html https://macspot.net/features.html
- cpressland 3y agoYou can absolutely run Windows for ARM on UTM, which uses virtualization.framework. I imagine this’ll work fine too, but haven’t tested. The mention of x86 on that page is about running x86-64 compiled Linux binaries inside an Linux ARM virtual machine.
- oneplane 3y agoIt will use emulation, which is slow.
- rnk 3y agoIt was so slow to run an x86 ubuntu os on an apple arm that it was unusuable. I switched to running an arm ubuntu on apple arm, that was fast.
- lxgr 3y agoNo, it will use Rosetta 2, which uses a combination of JIT and AOT to do binary translation, which is actually quite fast.
- oneplane 3y agoNo, it will not, it is not supported with windows emulated machines. It will work for linux machines to some degree using the additional binfmt handlers which can call out to rosetta. But that's mostly in user space.
- Tagbert 3y agoDoes Rosetta 2 apply to OS or apps in VMs? I’m not so sure about that.
- 3y ago
- cpressland 3y agoLook forward to checking this out, I currently run UTM to have K3s running on my Mac mini Server (m2), I’m torn between moving to Asahi Linux (Fedora) and continuing to use VMs.
- rvz 3y ago> I’m torn between moving to Asahi Linux (Fedora) and continuing to use VMs. This is no different to WSL 2, which doesn't require dual booting, migrating or moving OSes. It seems fast enough and the integration gets out of the way. I'd rather have full support for VMs on macOS today with all the apps, than fully migrate to Asahi and wait for them to fix their issues on top of the Linux desktop issues getting in the way.
- WesolyKubeczek 3y agoOne reason I bought a macbook pro was that it has superb speakers and power management on its native OS. This determined the question to be a no-brainer for me. If I ever want an arm server for a homelab, I'll rather wait for something made specifically to run Linux with full upstream support (meaning SBBR/UEFI). A NUC-like thing would surely be a way to go.
- moondev 3y ago> If I ever want an arm server for a homelab, I'll rather wait for something made specifically to run Linux with full upstream support (meaning SBBR/UEFI). A NUC-like thing would surely be a way to go. https://flings.vmware.com/esxi-arm-edition https://flings.vmware.com/esxi-arm-edition
- jbverschoor 3y agoOrbstack now does kubernetes
- anarchy89 3y agoWhat’s the difference between this and orbstack?
- whalesalad 3y agothis honestly looks like a wish.com version of orbstack. the documentation site is like if someone took orbstack docs and sliced and diced out all the stuff that wasn't relevant. https://docs.orbstack.dev/ https://docs.orbstack.dev/ the lack of screenshots, lack of detailed explanations about how it works makes me really think this is just a trojan horse or honeypot type of application that has ulterior motives.
- dv_dt 3y agoWhich is funny because it seems like Orbstack feels like a variant of colima/lima trying to add value via a mac native UI, docs, etc.
- ttcbj 3y agoWe historically used Parallels to create virtual machines used as build environments for MacOS based software. Then, when we switched to apple silicon, it stopped working (you could install a MacOS virtual machine, but it was based on an apple dev image and you could not connect to your own apple id for signing, etc.) We gave up and bought a few mac minis. Does anyone know if those issues have been solved by cheetah, or some of the other virtual machine managers mentioned by @dinkblam?
- naikrovek 3y agothe inability to log in with an Apple ID in a MacOS VM is a decision made by Apple. you can certainly sign without logging in, but I don't think you can submit to the store in a VM. you can see how they build tart here, including signing and entitlements and so on: https://github.com/cirruslabs/tart/blob/main/.cirrus.yml https://github.com/cirruslabs/tart/blob/main/.cirrus.yml
- duped 3y agoHave you looked into writing your own? It's actually quite easy
- srmatto 3y agoI thought https://tart.run/ https://tart.run/ was for this purpose?
- millzlane 3y agoParallels 19 pro is out. I know it has the ability to clone serial numbers and enroll in ASM/DEP. So it's worth asking them. Edit: in UTM my serial number is completely different from the host.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]