vm e container

This commit is contained in:
dado
2025-07-14 21:11:48 +02:00
parent 32df249455
commit a2ac9b25cf
2 changed files with 21 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
# Virtual Machine vs Container
## Virtual Machine
Nel paradigma delle Virtual Machine, un OS completo, dotato del proprio kernel, funge da `hypervisor` (HV). Questo consente di eseguire più VM, ognuna con il proprio sistema operativo e i propri servizi in esecuzione. Ogni VM opera come un'istanza isolata, garantendo un *elevato livello di separazione*.
Tuttavia, questa architettura presenta un'importante limitazione: ogni VM interagisce con l'hardware virtualizzato attraverso l'HV, che media la comunicazione con l'hardware fisico sottostante. Questo processo di mediazione introduce un *overhead* significativo, che rappresenta una delle principali cause di perdita di performance.
## Container
Il paradigma dei container si propone di affrontare le problematiche di overhead e performance associate alle VM. In questo modello, l'OS host non funge da hypervisor, ma esegue un `container engine`, che costituisce uno strato sottile di isolamento tra le applicazioni in esecuzione all'interno dei container e il sistema operativo sottostante.
A differenza delle VM, i container non eseguono un sistema operativo completo. Non possiedono un proprio kernel, poiché non gestiscono direttamente la comunicazione con l'hardware; piuttosto, *sfruttano il kernel del sistema host*. Le richieste di risorse hardware da parte dei container vengono, tramite il container engine, inoltrate direttamente al kernel dell'OS host, riducendo così l'overhead e migliorando le performance complessive.
## Vantaggi e limitazioni dei container
Rispetto alle VM, i container offrono prestazioni superiori e una maggiore flessibilità. È possibile modificare le risorse allocate a un container durante la sua esecuzione, senza necessità di spegnere il container stesso, evitando così downtime. Al contrario, le VM, simili a hardware reale, richiedono un riavvio per apportare modifiche alle risorse allocate.
Tuttavia, i container presentano anche delle *limitazioni, in particolare riguardo all'isolamento*. Sebbene offrano un certo livello di separazione, l'isolamento dei container è più debole rispetto a quello delle VM, poiché avviene solo a livello di processo e non di risorse. I container sono, infatti, processi in esecuzione sul sistema host e, a differenza delle applicazioni tradizionali, hanno accesso limitato alle risorse.
![container-vm](asset/img/container-vm.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB