UTM – Virtual Machines for iOS and macOS
github.com
github.com
* Integration tools like copy/paste between VM and host, or file sharing, didn't work
* Graphics constantly glitched, often going to a grey screen. There seemed no way to recover, and I had to force restart the VM
The drivers / assistant tools have a 2012 date on them.
I'm aware it's a free product and I have no right to expect anything (and I don't; I went back to Fusion.) And perhaps the situation would improve if I or others financially supported the project, which seems a better response to issues :) Nevertheless I went in hoping I could replace the commercial VM solutions, which on Mac have required yearly updates that deliver almost no new value, with something open source -- and I can't yet.
I wanted to run some risv emulation, and I need to remove some device from the default args UTM has, and nope. Not editable.
Unless I'm missing something..
https://docs.getutm.app/guest-support/windows/#windows-xp-an...
I've also not seen any graphical errors, I'm not trying to play games though. I just use it for basic desktop apps.
Edit: The Fusion 2023 Tech Preview [1] installs the full VMware Tools and supports copy-paste.
1. https://customerconnect.vmware.com/downloads/get-download?do...
It has one glitch where the screen goes black sometimes when changing apps (maybe a new DirectX context or something), but that's easy to resolve by just resizing the window a few pixels to change the VM resolution. I usually use my VMs fullscreen so this is a slight adjustment to normal, but it's workable until they release Fusion 13's official version.
I am glad to have found Lima - it also is based on QEMU and made bringing up linux VMs very easy and provided network sharing out of the box. Now all my development lies within these Lima VMs and I am happy to report I never had a problem. I know I could do display forwarding if needed but I am good with these headless instances for now (thanks to VSCode).
as simple as `cp -c`
though if that were true, I guess it would be implemented already.
Seriously, scroll up and down on the threads here on this page, and you'll see a bunch of people saying "I wish I could use UTM, but it doesn't work / is unusably slow" and a bunch of people replying "weird, it works great for me."
My experience: UTM has literally never worked for me. I just tried to do a bog standard Ubuntu ARM install on my M1 2021 Mac, following the guide here https://docs.getutm.app/guides/ubuntu/ and it failed. I'm staring at a blinking cursor on a black screen.
Sadly, the people for whom it works great can't really provide any useful technical support for the people for whom it doesn't work.
I even paid $10 for UTM on the Mac App Store, like a sucker, hoping that I could get some tech support that way, but the only tech support channel is their Discord, which is full of randos saying "lol, works for me, skill issue."
My recommendation: Give UTM a try! Either you'll love it, and save a bunch of money, or it won't work at all, like me, and you'll just have to pay $100/year for Parallels. Parallels is probably gonna just work.
If Parallels doesn't work for you, you can reach out to them and talk to a person who can help, because they want you to keep paying to renew your Parallels license. They're incentivized to help you succeed.
I tried the latest debian (downloaded it off their website) and have had no issues, aside from one bizarre one. If you set your boot VM above a specific size, not even a large one, I mean like 30GB to 100GB (I forgot how much) then your VM boots really slow. And if you set it large enough, your VM will never boot. Adding a second drive of any size will not trigger this bug at all.
So, I run Fedora (aarch64) under UTM full screen. It works acceptably well, and I often forget I'm on a mac.
I just wish macos would get out of the way, and not sometimes knock you out of full screen mode.
Surprisingly, the battery lifetime is still excellent.
I think Parallells give you more, but I do a big window in UTM over 2 displays which works quite well and doesn't break rest of the OS X flow. Mic doesn't work, you occasionally have correct audio output, but OS X audio daemons sucks so it's a crapshoot if you get audio and where/how it's output. You don't get 3d accelleration I think, but haven't tried. It's not for games or Teams (neither is OS X).
But it works reasonably well for software that runs on arm64, which on Linux may limit you a bit. But you get to make things work either on OS X or Linux arm64, and the rest works well. You may not notice much overhead compared to OS X on M1+.
As with everything, you can make it work for you, but it's not for gaming, CAD, some proprietary or limited projects, etc. Should be fine for development and sysadmin stuff.
If something works on Linux arm64 on M1, it's quite well supported you might say. So you get to weed out some fluff, but also some nice things.
https://developer.apple.com/documentation/virtualization/run...
Still excited to see progress but I’m probably not going to be able to use Linux on a Mac for another 12 months.
Maybe there's a solution out there somewhere that would let you stay in full screen mode.
Is the long battery life a feature you use often, or is it more of a "I'm glad it's there, just in case I need it" feature?
But yeah, I can imagine myself in the same situations with UTM running nonstop and it'd still have enough battery life.
The biggest headaches, though they aren't that big, is really about ARM vs x86, sometimes you will come across a package that just isn't supported on ARM, though that is increasingly rare.
Also Samba shares seem to mount perfectly on windows/Caja but on Finder there is some weird issue where after it working a few days suddenly you can't connect unless you use the terminal.
If you’d like to have a more powerful experience with file dialogs, the paid application Default Folder X [1] is worth it.
Click the parent directory or the home directory.
I also find developing on a mac is so frustrating. The package management experience is just such a downgrade.
And then there are the apps. All my daily apps are open source, and the apps I use just tend to work so much better on linux then on mac os (if they are even available on mac os!)
Why you can’t toggle between different instances of the same app by default is beyond me. But hey, we get more emojis!
I’m not entirely clear on what your requirement here is. Historically, Mac OS X/OS X/macOS has had a different app and windowing model compared to Linux. If you’re looking to switch between windows of a single app, you can use the keyboard shortcut Cmd + ~ (that’s Command and tilde). There are also trackpad gestures to see all windows of an application (swipe down with three or four fingers) and switch.
I make do with being an XPS peasant compared to the beautiful rounded rectangles used by my peers on the basis that my machine is completely available to me in every way possible thanks to source code.
Same goes for some .NET Framework apps we have; I've found an ARM Windows VM has been indistinguishable from x86 Windows.
But perhaps my favourite aspect of UTM is that it stands for Universal Turing Machine (arguably the best name ever for a virtualization product).
Just think about that. Apple has successfully made hardware that they can distribute to 1 billion+ people, many of whom have something to gain by jailbreaking, yet not a single person has managed it.
Furthermore, to achieve what the jailbreak community would consider a usable jailbreak, you need to string together several different vulnerabilities or bypasses into a single exploit chain. Nation-state actors will settle for just attacking iMessage directly, which gives them all your text messages, but is entirely useless for loading unsigned code or injecting tweaks into apps.
To make matters worse, the UK is mulling a bill that would give them veto rights on security updates, specifically so that their old exploits would continue to work until they've bought new vulns.
I keep pcap files of all my network traffic to protect myself against this. If anyone has been targeted by the NSA and can send me example traffic, then please do.
I so far haven't caught anyone doing anything nefarious, but with terabytes of traffic logged it's a bit of a needle in the haystack task. I keep the logs, because even if now their traffic is well hidden, I'm sure future analysis techniques will reveal them if they're there.
How does this work if you receive the payload via HTTPS? Do you MITM all your apps? (advanced version: can the payload be encrypted using an application-level Diffie-Hellman? e.g. if a JavaScript does a DH exchange and decrypts the payload with it)
What tooling do you use to record the VM? I'm unable to, with simple googling, find any tooling for VMs to do this, with all my results either being point-in-time snapshotting or video recording related.
How much data does that generate in a month?
No offense, but this claim just sounds fantastical to me.
It also works without all that but doing so is just the slowest of the 3 ways to run it.
I am very excited for sideloading to get implemented in the EEA, since that'll make this much easier.
And a comparison: https://docs.orbstack.dev/compare/docker-desktop
I think you'll find something you like in there :) To name a few: Performance, CPU usage/power efficiency, automatic domain names for containers, access to volumes and image files from macOS, native app, and more.
1) Runs containers / VMs ("linux machines"). Here you get a linux instance with access to your complete filesystem (everything is mounted), similar to I guess WSL
2) Full docker compatible + docker-compose
3) As of this week kubernetes support
Everything is blazing fast to start (think 100-200ms). Aside that, there's one thing that's awesome: networking.
Every container gets a unique IP. No more portmapping.
Every containers also gets a unique hostname (+ip) -> testapp.orb.local
Every every docker-compose gets a unique subdomain -> web.testcompose.orb.local
-------
Now to come to the point your OrbStack seems to be really similar to Canonical Multipass, so I wondered how they do they compare to each other? Why should I prefer to use OrbStack over Canonical Multipass (besides the possibility of being able to run other distributions than ubuntu)?
Personally I disagree with the "Major version upgrades". To me that what I want, you release a product, I buy it knowing what it contains and what it does. My expectations are that I get security fixes for some period of time, but other than that the "no new features" is a feature all on its own.
I might be in the minority, but I'd pay $150 up front, rather than a $8 per month, knowing full well that I might need to pay another $100 the next time macOS is updated. It's not the money as much as it is the mental overhead of yet another subscription.
Customers need to be able to keep track of their subscriptions and after four or five that's it, you lose track and the money just disappear out of your account every month. Say that: Well the App Store lists all your subscriptions... is missing the point, because not all of my subscriptions are going to be centrally managed by Apple, Google or some one else. Again, it might just be me, but I believe that companies are losing out on sales because they're not offering straight up purchases. There's just no way to track sales lost because of it, so it's not on anyone's radar.
Edit: I checked the pricing on VMWare Fusion, it was release in 2020, it might have been cheaper on release, but let's assume it's not, that's $199 up front, I'd still be able to us it and I'm saving money. I can then upgrade it for $99, but I don't have to, unless I also upgrade my laptop to an M-series. So it's cheaper for me to buy an objectively better product. I might even get a discount if I buy bulk licenses or I'm already a VMWare customer. I get why subscriptions are attractive to the developers, but they provide no value to the customer.
(that being said, I always appreciate and recognize the freedom of producer to charge whatever model they choose to, there's no moral qualms here:)
In my opinion, JetBrains' perpetual fallback model is more of a psychological thing than something you'd actually utilize — at least I'd never consider staying on an old version myself, but maybe that's just me.
I've also talked to other devs, who mentioned that users staying on ancient versions because they don't want to pay again can be a major support burden.
One thing worth considering is that I plan to offer (optional) cloud services integrated into the app.
OrbStack is also relatively high-maintenance due to all the components it bundles.
I let Jetbrains lapse a lot. But certainly not when I am actively using it. If I start using it regularly again (which I do, intermittently over the years) then I subscribe again.
But the thing is, that also solves the elephant in the room that devs don't want to talk about: a huge portion of subscription revenues comes from providing absolutely no value at all to customers. It's people paying for a subscription, being too busy to notice the charges -- or worse, too busy to figure out how to cancel them even thought they do notice, and mean to.
And devs can claim this is ethical, because they disclosed the subscription recurrence, and the responsibility lies with the customer to track all their subscriptions diligently, across all their platforms and billing methods, and cancel them whenever they stop using them.
And some people do that. But most do not.
So the other way to look at it is that subscription software models are just a scam. A way to exploit people who lack the organization, or have two jobs and kids, or whatever — and get money out of them without providing any value at all. For months, or even years in many cases. Of course it is great for your bottom line. But is it ethical? Even if you think it is, is it a cool thing to do?
I think both arguments make sense. It is debatable.
But personally, I would only want to do subscription billing if I had some means (perhaps via opt-in telemetry) to automatically detect when the product hasn't been used at all during the billing period, and not charge anything in those cases.
No you haven't, you've just regurgitated the usual argument made by people peddling subscriptions.
Its always the same old story, and charities do the same thing when seeking donation subscriptions...
The person selling the subscription says "oh, but its only $8 a month that's only half a Starbucks coffee"
Meanwhile, the REALITY for the person on the receiving end of the salesdroid is always the same ...."your sub is not the only thing going on with my life bud".
And its very true in IT, sub to this for $x, sub to that for $y, sub to that for $z, and soon enough you are "talking real money" as the old saying goes. And then if you are expecting the company to pay for an employee then that adds up exponentially in-line with the number of employees.
So, yeah, subscriptions suck ... for a real and valid reason.
Of course, you're free to build your own with a VM and at least a couple months of full-time work to get the same feature set, just like with Dropbox :) Not saying it's for everyone.
You obv. haven't experienced the difference.
> No matter the use case, OrbStack has you covered with features that simplify your workflow and help you move faster.
Hasn't been that common of a request, and honestly I've never used Vagrant so not familiar with its benefits. People are already using OrbStack machines and its "orb" command to build dev envs with setup scripts, and cloud-init support will also be added: https://github.com/orbstack/orbstack/issues/38
I think cloud-init will be more useful since it's already widely used for setting up servers, whereas Vagrant is only for dev envs, but correct me if I'm wrong.
I'll bet there are many other companies with a similar thought.
Orb stack is too young to warrant piling on the tickets, vs just assuming it is immature.
The point I was making is this: Your claim is
> No matter the use case, OrbStack has you covered with features
But you don't support a common, cross-platform tool that's been around for ages and is used for managing developer environments - including running containers.
You're also free to create your own interfaces on the Linux side, of course.
Not sure what is used underneath but it worked great for me.
colima is a layer upon lima that sets up a VM the easy way docker-machine/boot2docker style.
Nothing beats Parallels on Mac, worth every penny.
One issue might be that only OpenGL 2.1 is supported: https://github.com/utmapp/UTM/issues/4285
It works great for my needs. I mostly develop infrastructure automation and configuration tooling and I run all my VMs in terminal mode. The wide availability of arm64 distros and OSes makes this easy.
I also use it to run a tiny pi hole instance when I'm traveling.
That's such a good idea. I used to run one using a raspberry pi, which got lost during the house move, so would love to do that.
Is is better than running it via Docker, e.g. from the resource usage pov? Do you have any good resources/tutorial to share?
PS. In pre-Apple Silicon times I used it to play with old versions of Windows, but now DosBox seems like a better choice for Win 3.11 or 95.
- The serial window.
- The ability to truly lock the mouse to the window.
I wanted to use it on my work provided machine, but when hooked up to my monitor, the performance was lacking (21:9, 1440p). Performance also felt the same across an M1 MacBook Air, an M2 MacBook Air, and an M2 MacBook Pro, so it felt like something was up, not that the machine just couldn't handle it.
Sadly, Parallels was the only thing I tried that performed well when connected to that monitor.
(yeah, there's a single core speed improvement across generations, it's just not earth-shattering)
Yes, I imagine there are fancier commercial VMs out there, but UTM is free and open source, and it works great. (I'm not a light user, either, I use it for Linux kernel work, and never had any cause to complain.)
(Why? Because I need to run Samsung ODIN, which is windows-only)
There are a bunch of VM images you can download at https://mac.getutm.app/gallery/
There's really no other convenient way to do this. It was awesome to be able to run the tool on a fresh MacOS install, test the effects, make some changes, then do it all over again with little fuss.
Thanks UTM!
UTM is really nice for running Xcode as a build server, but being limited to two VMs sucks. I build lots of software with old macOS versions because I still support macOS versions that Apple no longer supports.
There's money to be made on Apple's platforms, to be sure, but putting up with nonsense like VM limits and what-not is insanity.
I remember a time when it was against the EULA to virtualize OSX at all. Finally, perhaps a decade late, Apple grants virtualization to the commoners and people rejoiced - Stockholm Syndrome-esque.
Apple gets away with this not just because people accept it, they welcome it.
Meanwhile, most other platforms bend over backwards to make development easy.
It's not just Apple. Developer-experience focused web frameworks make one time creation easier, at the expense of users who run it every time. The priority is upside down.
Thankfully, for hardware, wallet-share shows there's money to be made from giving users a curated experience at the cost of nominal incremental developer effort.
And the resurgence of SSR (new old hotness?) shows the same can hold true on the tech stack.
A developer can be allowed to spin up N vm's and Apple can still provide an amazing end-user experience.
It's just a EULA thing... there's no technical reason. It's "just because".
Nobody rejoiced. Everyone who virtualises macOS complains about the limit. It's a shame, they made it so much easier to create macOS VMs on M2 (Metal finally just works!!), but then they crippled them on purpose (no iCloud, no App Store, max 2 VMs enforced by the virtualisation framework)
I wonder if you could go after them on anti-competitive grounds? I'm pretty sure the machines that Xcode cloud run on are not limited to 2 VMs.
Has anyone found a reasonably painless way to migrate their disk images from Parallels to UTM?
They do release new versions that maintain compatibility with the latest versions of macOS, and Parallels Tools updates that maintain compatibility with the latest versions of Windows and Linux.
So not nothing... but I agree $70/year is a bit much for maintenance updates.
These instructions may do the trick: https://github.com/utmapp/UTM/issues/4927#issuecomment-16294...
Anyone have tips on how to boot OpenBSD with UTM?
OpenBSD won’t even initialize on UTM/AppleSilicon for me.
For OpenBSD, the installer works after adjusting the devices in the guest.
https://cdn.openbsd.org/pub/OpenBSD/7.3/arm64/install73.img
- UTM / Create New Virtual Machine / Virtualize / Other
- Select 'Skip ISO boot' / Continue
- Hardware / (adjust as needed) Continue
- Storage / (adjust as needed) Continue
- Shared Directory / Continue
- Select 'Open VM Settings' / Save
- Right-click on Devices/Display and select Remove
- Devices / New / Serial
- Drive / New / Import and select install73.img
- Edit the VM again and move the second VirtIO Drive to the first position by right-clicking on it and selecting 'Move Up'
If you feel inclined, hop on to the UTM Discord and the folks there (me included) should be able to help out.[1] https://github.com/hashicorp/vagrant/issues/12518
[2] https://github.com/hashicorp/vagrant/issues/12518#issuecomme...
[3] https://github.com/hashicorp/vagrant/issues/12518#issuecomme...