# Virtual Machine Manager // SPDX-FileCopyrightText: 2022 Unikie // SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0 ## Status Accepted ## Context rust-vmm-based VMM provides memory and concurrency safe solution. cloud-hypervisor was chosen because firecracker does not support other virtio-devices than net or block. crosvm was not chosen because cloud-hypervisor has more flexible IPC mechanisms, more engaging community as LF-project. cloud-hypervisor has more core features - such as snapshotting, live migration and more general hot plugging. crosvm supports more devices we will also need. It was seen easier to port devices from crosvm to cloud-hypervisor than to port core features from cloud-hypervisor to crosvm. ## Decision Spectrum OS design and implementation decision is to use cloud-hypervisor as the primary VMM. ## Consequences We gotta port some stuff from crosvm to cloud-hypervisor. It's easier for Spectrum to handle virtualization dynamically with cloud-hypervisor. If the primary VMM, cloud-hypervisor, is exchanged for trials etc. functionality is expected to break or not supported.