Macchine virtuali Linux su macOS con il progetto Lima

Come eseguire macchine virtuali Linux in ambiente macOS senza complicate e pesanti installazioni. Cos'è e come funziona Lima, software open source versatile e ampiamente personalizzabile.

Acronimo di Linux (virtual) machines, Lima è un progetto open source che consente di eseguire macchine virtuali Linux su macOS in modo semplice e integrato, un po’ come consente di fare Microsoft con il suo Sottosistema Windows per Linux (WSL, Windows Subsystem for Linux). Tuttavia, mentre WSL esegue un ambiente Linux leggero, Lima consente il caricamento di macchine virtuali Linux complete.

Per gli utenti della Mela, Lima si dimostra uno strumento prezioso ed è utile in particolare per gli sviluppatori, gli amministratori di sistema e chiunque abbia bisogno di lavorare con ambienti Linux senza abbandonare macOS. In un altro articolo abbiamo visto le principali differenze tra macOS e Linux.

Come funziona Lima, in breve

Lima utilizza QEMU per la virtualizzazione e offre un’esperienza integrata. Oltre all’interfaccia grafica di semplice utilizzo, l’applicazione rende immediata la condivisione dei file tra l’host e la macchina virtuale Linux. Qualsiasi modifica applicata ai file nell’host è automaticamente riflessa nella macchina virtuale e viceversa.

Questa interessante soluzione per la virtualizzazione consente anche il port forwarding automatico: utilizzando le applicazioni sull’host ed eventualmente altri dispositivi collegati alla stessa rete locale LAN, diventa possibile accedere ai programmi dotati di funzionalità server in esecuzione sulla macchina virtuale Linux. Le applicazioni in esecuzione sulla macchina virtuale possono essere visualizzate e utilizzate come se fossero applicazioni native, caricate sul sistema ospitante.

Disponibile pubblicamente su GitHub, Lima è utilizzato come colonna portante di diversi altri progetti. Ad esempio colima ne sfrutta le fondamenta per portare la gestione dei container su macOS, proponendosi come valida alternativa a Docker.

Allo stato attuale, Lima è probabilmente il modo più facile e immediato per eseguire una macchina virtuale Linux su un sistema host macOS.

Dimostrazione macchina virtuale Linux su macOS

Installare Lima su macOS

macOS non ha un package manager ufficiale. A colmare il vuoto c’è Homebrew, che consente di installare un ampio ventaglio di applicazioni, di uso più o meno comune, dalla finestra del terminale. Con una semplice istruzione.

Dando per scontato di aver già installato Homebrew sul proprio sistema macOS, per caricare Lima è sufficiente digitare quanto segue:

brew install lima
limactl --version

Il primo comando provvede a installare Lima mentre il successivo consente di controllarne il numero di versione.

Eseguire una macchina virtuale Linux

Un po’ come fa anche WSL, Lima mette a disposizione una serie di immagini di macchine virtuali Linux che possono essere istantaneamente caricate con un apposito comando. Per iniziare, il suggerimento è digitare quanto segue:

limactl start --list-templates

Si ottiene così la ricca lista di macchina virtuali Linux utilizzabili dal sistema host macOS. Con il comando che segue si può ad esempio richiedere l’installazione di Ubuntu LTS (Long Term Support). Alla macchina virtuale è assegnato il nome default:

limactl start --name=default template://ubuntu-lts

Scrivendo lima, si può accedere alla shell di Linux e impartire vari comandi.

Il comando lima sudo apt-get install -y neofetch esegue l’installazione di neofetch, uno strumento che visualizza le informazioni sul sistema in maniera efficace e accattivante.

Permessi di scrittura: non è possibile salvare dati ovunque

La macchina virtuale Linux ha accesso in sola lettura al file system di macOS. Tuttavia, applicando alcune modifiche sulla configurazione di Lima, si possono specificare le cartelle disponibili in scrittura.

Di solito, il contenuto della directory home dell’utente (/home/username) risulta scrivibile dalle macchine virtuali Lima. Si tratta della cartella predefinita per l’archiviazione dei file personali e delle configurazioni utente. Allo stesso modo, anche la directory temporanea /tmp gode dei permessi di scrittura.

Alcune sottocartelle di /var appaiono a loro volta scrivibili e sono utilizzate per memorizzare dati temporanei o variabili.

Lima consente anche di montare directory appartenenti al file system di macOS all’interno della macchina virtuale Linux. Queste cartelle possono essere configurate nel file YAML di configurazione di Lima. Digitando quanto segue è possibile arrestare temporaneamente la macchina virtuale Lima chiamata default, quindi modificare il suo file di configurazione:

limactl stop default
limactl edit default

Una configurazione come quella abbozzata di seguito consente di rendere scrivibile la cartella indicata da parte della macchina virtuale Lima:

mounts:
- location: "/percorso/cartella"
writable: true

Riavviando la macchina virtuale (limactl start default) quindi accedendo alla cartella indicata nel file di configurazione di Lima, si può provare a creare un file vuoto al suo interno in modo da verificare di possedere i permessi in scrittura (touch test.txt).

Conclusioni

Lima rappresenta una soluzione innovativa e potente per gli sviluppatori e gli amministratori che desiderano combinare l’affidabilità e la flessibilità di un ambiente Linux con la robustezza e l’ecosistema di macOS.

Il software si integra perfettamente con il sistema operativo Apple consentendo il caricamento e l’esecuzione di macchine virtuali Linux senza richiedere dual boot o hardware aggiuntivo. L’installazione e la gestione delle macchine virtuali Linux sono rese semplici grazie anche a configurazioni facilmente personalizzabili tramite file YAML, come quello visto in precedenza.

È in ogni caso garantito il supporto per un’ampia gamma di strumenti di sviluppo, inclusi Docker, Kubernetes e altri strumenti di containerizzazione e orchestrazione. Così Lima diventa una scelta ideale per lo sviluppo di applicazioni moderne, containerizzate e distribuite.

Utilizzando QEMU per la virtualizzazione, Lima offre prestazioni elevate, permettendo agli utenti di eseguire applicazioni Linux con una latenza minima e ottima efficienza.

Credit immagine in apertura: iStock.com – monsitj

Ti consigliamo anche

Link copiato negli appunti