Comment by kdrag0n
3 years ago
I use Virtualization.framework for OrbStack (https://orbstack.dev), which is a Docker Desktop and WSL alternative.
It's great overall, and fairly convenient, but it has a fair share of bugs and limitations. The Virtualization service crashes with various combinations of Linux kernel version, macOS version, and architecture (ARM/Intel), so making it stable in each setup takes quite a bit of work. Device support is limited (no USB, etc.), and workarounds have other limitations. Rosetta is really buggy.
The popular belief is that Virtualization.framework is inherently faster/lighter than other VMMs like QEMU, but I haven't found evidence to back it up. I spent a day prototyping a custom VMM (with an open-source base) and was able to get dynamic memory allocation working [1], as well as faster file sharing in some cases. There's a lot of other things I could do better (faster, simpler, more reliable) with a custom, tightly-integrated replacement.
But unfortunately, that's not an option. Apple doesn't allow third-party VMMs to set the necessary CPU flags for Rosetta. There are too many users relying on Rosetta for fast x86 emulation for me to ditch it, despite all its bugs.
So yes, I still use Virtualization.framework, but only because I have no choice.
Happy to answer other questions about the framework!
I've been looking into some of the options for containerized development environments and what I observed was that with lima even when using virtiofs it slowed down to a crawl when building a project from a shared directory so I installed orbstack and gave it a try and I was very pleasantly surprised to see that it was super fast, just as fast as if I was running on a local copy.
Needless to say orbstack earned its place in my setup so thanks a lot!
Edit: sorry, I wasn't clear, what I'm using in orbstack isn't a container instance but a full VM. I don't expect to find a huge difference with containers but I figured I'd make it clear so I don't cause any confusions.
I would definitely buy OrbStack if it become non free.
the only thing that i'm afraid of is this:
- i work in an enterprise company, and they don't want to pay for docker. as a software engineer i want to be able to buy OrbStack pro license with my own money and be able to use it both in company or my personal environment. is it possible? or your future licensing plan would prevent me to use it in professional environment and only allow me to use it in personal environment?
Yes, you'll be able to buy a commercial/business use license yourself.
Your answer is still vague. So suppose we have this 3 hypothetical plans:
- Professional : XXX $ - Business YYY $ - Enterprise ZZZ $
which XXX << YYY << ZZZ
I'll repeat my scenario: - I'm a Backend Developer - I don't have any share in the company. - I don't have any management position in the company. - I'm not forcing any one in the company to use OrbStack to progress my mission in the company. - I'm solely using it inside own device provided by the company. i don't have it installed in my colleagues devices. - this company device is only in my own control and is not shared with anybody else in the company. - this company device is not used in any automation CI/CD pipeline in the company. - I'm willing to use it as a docker GUI for the docker images hosted in companies account in Google cloud. - I'm also sometimes/occasionally, willing to use it in my personal toy projects using the same company laptop in my spare time using the same instance of OrbStack license.
based on these are you implying that i'm not allowed to use `professional` license and i need to use `business` license?
Or you are telling that it's okey for me to use my personal `professional` license in this scenarios?
1 reply →
> OrbStack (https://orbstack.dev), which is a Docker Desktop and WSL alternative
Wait why have I never heard of this? I just tried it out and it seems to work amazingly well.
I've been using OrbStack for a few weeks now and, while initially skeptical that I would in future consider paying for it, now I think I would. I've found it to be less troublesome than Docker desktop, has some prettier terminal output, and it starts up and quits so fast. These might seem like small quality of life improvements, but added together it's just a lot nicer to use. Looking forward to seeing where it goes next.
Glad to hear that!
> Apple doesn't allow third-party VMMs to set the necessary CPU flags for Rosetta.
Would that change with Asahi Linux host OS and macOS guest?
I can't speak for the feasibility of running a macOS guest on Asahi, but yes, Linux could be in control of the guest's CPU flags. Same goes for the m1n1 hypervisor.
I can't find the exact post but I remember marcan saying that he doesn't want to poke the bear of using Apple's custom ISA extensions on Linux. So even though it's possible, I'm not sure whether it'll actually be done.