Virtualizzione a livello di sistema operativo
Utilizzando la virtualizzazione a livello di sistema operativo (operating system level virtualization), i processi di user space nei sistemi UNIX sono protetti mediante il metodo di sicurezza detto chroot.
Ciò è possibile facendo uso di una chiamata di sistema (system call) e del programma chroot.
Chroot modifica l’ambiente d’esecuzione cosicché le librerie, i device node e i file di configurazione necessari devono essere disponibili in modo relativo alla directory dove è stato impostato chroot. Un programma eseguito in chroot percepisce di essere in esecuzione in una directory / isolata e non è in grado di uscirne.
Questo approccio è stato introdotto da FreeBDS jail ed è utilizzato come principio base dei software di virtualizzazione a livello di sistema operativo. Il sistema operativo che sta sul computer crea le istanze isolate che si chiamano virtual private server (VPS). Non è necessario un VMM che gestisca le risorse, ma basta solo un kernel adattato ad amministrare i VPS.[ad#midarticlequadr]
Ogni sistema che fa uso di chroot continua a condividere un unico kernel con le sue risorse, che permette di ridurre l’uso della memoria di ogni virtual machine, di ottimizzare I/O in quanto un solo kernel è in esecuzione per tutte le macchine e non è necessaria alcuna replicazione delle risorse o condivisioni di programmi in librerie USER-space.
Come elementi a sfavore di questa soluzione, non si possono adoperare altri sistemi operativi diversi da quello che sta sull’hardware: infatti solo processi UNIX (Linux e BSD) possono essere eseguiti nativamente su UNIX (Linux e BSD).
Questo approccio è utilizzato da FreeBSD Jail, OpenVZ e Virtuozzo.