Skip to content

[Request]: Linux Host Support/non-Apple Virtualization support #233

@heywoodlh

Description

@heywoodlh

Feature or enhancement request details

From a development perspective, it would be really cool if I could run the same container tooling on Linux.

Some initial thoughts:

  • Since Swift is available on Linux, the command-line application should be possible to compile
  • Apple's Virtualization platform is obviously not on Linux, therefore a different backend would have to be used.

I see two possible replacements for Apple Virtualization backend on Linux:

  1. Implement client support for a backend like Docker, Containerd, Podman, etc.
  2. When on Linux, replace calls to Apple's Virtualization platform to a different virtualization system like QEMU

Solution 1: Docker, containerd, etc. client support

I think solution 1 is better because I imagine it would likely be easier to implement and I could see MacOS benefiting from being able to act as a client to an existing Docker, containerd, etc. installation.

In this mode, management of the container system service should be completely disabled, i.e. container system should just be restricted to MacOS 15+, imo.

Solution 2: support a different virtualization backend

For solution 2, I could see leveraging a VM system like lima on Linux as feasible -- Lima is a very robust wrapper around QEMU. As I understand it, the container platform creates extremely lightweight Apple Virtualization VMs, there would likely need to be some effort to make super lightweight VMs in QEMU to replicate something similar.

If not Lima, one could go with straight QEMU, but I suspect that would be far more difficult.

I think supporting a different virtualization backend would also benefit MacOS by making the container tool a bit more versatile. I'd imagine that removing constraints around Apple Virtualization would also enable the container tool to run on older versions of MacOS as well, since QEMU works on older MacOS.


I understand this request might not be as simple as I've made it out to be, but as a MacOS user who uses Linux constantly, I'd be really excited to see something like this made possible.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions