lima-vm / lima-vm/lima

Lima driver for Apple Container virtual machines

Open
#3,788 13 comments 28 reactions 0 assignees View on GitHub
area/vmdrivers enhancement
Dominant language
Go
Stars
21.9k
Forks
957
Avg merge
2d 6h
Merged PRs (30d)
53

Description

### Description

Currently Lima is using the Virtualization.framework (VZ) to create a VM from a regular cloud image...

But it is also possible to use the Containerization Swift library, to create a VM from a container image

This makes it more similar to the WSL2 driver for Windows, with kernel and init provided outside image*.

The easiest way to integrate from a Go program is to use the `container` CLI, [github.com/apple/container](https://github.com/apple/container)

----

The main feature is that the MicroVM boots up in a second (with the right image) - instead of in a minute.

The default kernel is currently from the Kata containers project, it could be made available for others too.

Current issues

* Systemd is not yet supported (not compatible with `vminitd`), only OpenRC

* Some advanced features are missing from default kernel, such as IPv6 or VXLAN

* Apple ARM CPU is required, it does not work on Intel CPU

* Networking between instances does not work on macOS 15

\* for WSL2, the kernel is shared between all system containers. in AC, each one get their own kernel.

Lima could use a custom image for AC, similar to the custom image that is currently used with WSL2.

----

* #3622

* https://github.com/apple/container/discussions/106

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.