I’ve come across this project called Lima (https://github.com/AkihiroSuda/lima), which aims to be a WSL-type solution for macOS, based on QEMU.
Right now it’s terminal only, but I personally would be interested in seeing GUI app support come to that (and possibly even Multipass), which got me thinking: Maybe one can solve that using Mir.
This project doesn’t have a name yet so I’m basically at the stage of making concepts right now.
The idea is to provide a Wayland compositor for guest Linux distributions, like Ubuntu and Fedora,
having the Wayland client protocol handled by Mir, and providing input forwarding + display of the surfaces using a client on the macOS side, connected over a vsock across host/guest boundaries.
It should provide seamless integration into the host OS, basically displaying Wayland windows as separate windows on macOS instead of typical per-screen QEMU windows.
The foundation builds on top of:
- QEMU for virtualization
- Virgl for virtual GPU + OpenGL support
- Mir + this project to fulfill the needs of Wayland clients
So I’m preparing and working out how to solve it. Basic questions around it are:
- Is there anything needed in Mir? (I guess not, but I could be wrong)
- Is it enough to scan out surface data on the guest compositor and sending surfaces over the wire?
- Should this make use of RDP (+ RAIL & VAIL) or is a custom protocol sufficient?
- What are drawbacks with this approach?