Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/crc-org/vfkit
https://github.com/crc-org/vfkit
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/crc-org/vfkit
- Owner: crc-org
- License: apache-2.0
- Created: 2022-01-27T15:03:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-10T14:44:43.000Z (3 months ago)
- Last Synced: 2024-07-10T17:13:57.908Z (3 months ago)
- Language: Go
- Homepage:
- Size: 501 KB
- Stars: 109
- Watchers: 6
- Forks: 21
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
vfkit - Simple command line tool to start VMs through the macOS Virtualization framework
====### Introduction
vfkit offers a command-line interface to start virtual machines using the [macOS Virtualization framework](https://developer.apple.com/documentation/virtualization).
It also provides a `github.com/crc-org/vfkit/pkg/config` go package.
This package provides a native Go API to generate the vfkit command line.### Installation
vfkit is available in the `crc` brew tap:
```
brew tap cfergeau/crc
brew install vfkit
```### Usage
See https://github.com/crc-org/vfkit/blob/main/doc/usage.md
### Presentations
`vfkit` has been presented at a few conferences:
- [Containers Plumbing 2023](https://crc.dev/blog/posts/2023-03-22-containers-plumbing/)
- [FOSDEM 2023](https://fosdem.org/2023/schedule/event/govfkit/)### Background
The work in this repository makes use of https://github.com/Code-Hex/vz which provides go bindings for macOS virtualization framework.
The lifetime of virtual machines created using the virtualization framework is tied to the filetime of the process where they were created.
When using `Code-Hex/vz`, this means the virtual machine will be terminated at the end of the go process using these bindings.
Spawning a `vfkit` process gives more flexibility and more control over the lifetime of the virtual machine.The kernel must be uncompressed before use as no bootloader is used, as
documented in https://www.kernel.org/doc/Documentation/arm64/booting.txt```
3. Decompress the kernel image
------------------------------Requirement: OPTIONAL
The AArch64 kernel does not currently provide a decompressor and therefore
requires decompression (gzip etc.) to be performed by the boot loader if a
compressed Image target (e.g. Image.gz) is used. For bootloaders that do not
implement this requirement, the uncompressed Image target is available instead.
```