vfkit

module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2024 License: Apache-2.0

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. 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
Building

From the root direction of this repository, run make.

Usage

See https://github.com/crc-org/vfkit/blob/main/doc/usage.md

Presentations

vfkit has been presented at a few conferences:

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.

Directories

Path Synopsis
cmd
pkg
config
Package config provides native go data types to describe a VM configuration (memory, CPUs, bootloader, devices, ...).
Package config provides native go data types to describe a VM configuration (memory, CPUs, bootloader, devices, ...).
vf
Package vf converts a config.VirtualMachine configuration to native virtualization framework datatypes.
Package vf converts a config.VirtualMachine configuration to native virtualization framework datatypes.
tools module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL