-
Docker-OSX
Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
To my knowledge, there are two ways to get accelerated graphics in a macOS VM: GPU passthrough, and paravirtualized GPU.
GPU passthrough from a Linux host to a Mac VM is already possible. Even with Docker in the sandwich. Then it’s a question of Docker-OSX being furnished for it.
I believe the GPU passthrough foundation is already there:
PR #132: https://github.com/sickcodes/Docker-OSX/pull/132
”[…] this PR introduces GPU passthrough support. This requires extensive configuration on the host”
—
Then there’s “paravirtualized” graphics. I don’t get the name; as far as I know, this is when the guest OS has a virtual graphics device and a driver for it – with acceleration — and the virtual graphics device is actually served and accelerated like any other graphics-accelerated software by a GPU on the host.
As mentioned elsewhere, paravirtualized graphics are available on mac-host-to-mac-guest, and to my knowledge only mac-inside-mac.
(But the “outside” mac can probably be a virtual machine as long as it has a GPU. Even if it’s a passthrough device. Should be technically possible at least and I would guess that it just works.)
Finally, un-accelerated graphics in a macOS VM are surprisingly fast these days. At least on my Linux machine in qemu-kvm, recent versions of kernel / qemu etc. It’s noticeably slower than having properly accelerated graphics but muuuuch faster than I was expecting from macOS VMs I’ve used before.
Finally, headless access to virtualized macOS goes really fast. Working on a mac VM through mosh-shell is excellent.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
gon
Discontinued Sign, notarize, and package macOS CLI tools and applications written in any language. Available as both a CLI and a Go library. (by mitchellh)
It might be less effort to use something like this: https://gregoryszorc.com/blog/2021/04/14/pure-rust-implement...
Might even be able to modify `gon` to use that instead of Apple's `codesign` and then you'll have notarization too: https://github.com/mitchellh/gon