Michael Hill
mdhillca@gmail.com 2012
Baptiste Mille-Mathias
baptistem@gnome.org 2012
Federico Bruni
fede@inventati.org 2015-2020

# Quale tecnologia è impiegata da Boxes?

Boxes usa qemu-kvm, libvirt-glib e spice-gtk per permettere agli utenti di gestire facilmente le macchine virtuali e connettersi a macchine remote.

# QEMU con KVM

QEMU è un emulatore e un virtualizzatore. Come emulatore, può eseguire sistemi operativi e programmi fatti per una certa macchina (per esempio una scheda ARM) su una macchina diversa (per esempio il proprio PC). Come virtualizzatore, QEMU raggiunge una performance quasi nativa eseguendo il codice del guest direttamente nella CPU dell'host tramite KVM.

KVM (Kernel-based Virtual Machine) è un modulo del kernel Linux che permette a un programma in spazio utente di usare le funzionalità di virtualizzazione hardware di vari processori.

# libvirt

libvirt è un insieme di strumenti che permettono di manipolare (creare, eliminare e modificare) e monitorare le macchine virtuali su host remoti, in modo sicuro.

libvirt-glib permette di accedere a libvirt attraverso un'API di alto livello orientata agli oggetti e adatta alle applicazioni basate su glib.

# SPICE

SPICE, Simple Protocol for Independent Computing Environments, è un sistema per accedere e controllare i computer desktop remoti collegati in rete.

Il server SPICE è una libreria che gira dentro il binario di QEMU. Le sue principali funzioni sono l'autenticazione delle connessioni del client, l'inoltro dell'output video del sistema operativo guest al client e l'inoltro dell'input utente (mouse e tastiera) dal client al guest.

spice-gtk è il client SPICE che fornisce una vista nel sistema operativo guest.

# VNC

VNC, Virtual Network Computing, usato solo per display remoti, è un protocollo conosciuto ma limitato e lento.