In questo articolo scopriremo cos'è WSL, come funziona e come abilitarlo su Windows 10 in modo da poter installare una macchina virtuale Ubuntu.
Windows Subsystem for Linux (WSL2) - L'alternativa alle classiche VM
Tempo di lettura stimato: 7 min
1 Introduzione
1.1 Che cos'è WSL
WSL, abbreviazione di Windows Subsystem for Linux, è una feature di Windows che permette di installare ed eseguire degli ambienti GNU/Linux direttamente all'interno del sistema operativo di casa Microsoft, senza la necessità di installare a avviare macchine virtuali o fare un dual boot del sistema.
Al momento WSL non supporta esattamente tutte le distro esistenti, ma tra le più famose che sono state integrate troviamo Ubuntu, Kali Linux e openSUSE.
Tramite WSL è possibile integrare tutti i punti di forza di Linux all'interno di un ambiente di lavoro Windows, fornendo a sviluppatori (e non) grande flessibilità e libertà. E' possibile usare contemporaneamente powershell e i classici comandi da riga di comando della shell di Linux, utilizzare i packetmanager del pinguino mentre si installano i classici programmi sul OS di Microsoft. E' un'ottima integrazione che può tornare utile in molti aspetti.
Al momento WSL non supporta esattamente tutte le distro esistenti, ma tra le più famose che sono state integrate troviamo Ubuntu, Kali Linux e openSUSE.

Che cos'è sottosistema Windows per Linux
Informazioni sul sottosistema Windows per Linux (WSL), incluse le diverse versioni e sui modi in cui è possibile usarle.
docs.microsoft.com
Tramite WSL è possibile integrare tutti i punti di forza di Linux all'interno di un ambiente di lavoro Windows, fornendo a sviluppatori (e non) grande flessibilità e libertà. E' possibile usare contemporaneamente powershell e i classici comandi da riga di comando della shell di Linux, utilizzare i packetmanager del pinguino mentre si installano i classici programmi sul OS di Microsoft. E' un'ottima integrazione che può tornare utile in molti aspetti.
1.2 WSL vs WSL2
Dal 2019 esistono due versioni differenti di WSL: la prima, ormai obsoleta, che permetteva solamente di eseguire binari Linux nativamente su Windows tramite un kernel sviluppato appositamente da Microsoft, e la versione 2, quella attuale, che integra un vero e proprio kernel Linux virtualizzato, ideato sulle funzionalità di Hyper-V, e che permette non solo di eseguire binari ELF64 su Windows ma che garantisce anche una compatibilità completa con tali chiamate di sistema. WSL2 è ovviamente più performante e potente di WSL1 e perciò è sempre preferibile scegliere l'ultima versione (quando possibile).
E' possibile approfondire ulteriormente le differenze tra le due versioni tramite la documentazione ufficiale fornita da Microsoft:

Confronto tra versioni di WSL
WSL 2 offre i vantaggi di WSL 1, ma usa un kernel Linux effettivo, anziché un livello di conversione come WSL 1, con prestazioni più veloci.
docs.microsoft.com
1.3 Cosa lo differenzia dalle altre VM
A volte eseguire una distro Linux su una macchina virtuale è la scelta migliore, soprattutto per quanto riguarda il processo di installazione e configurazione. Una VM è una "vera" macchina Linux, i processi, le configurazioni, le interazioni col kernel, ecc. sono le stesse di una macchina installata fisicamente, perciò se si ricerca un ambiente il più simile e fedele all'originale, utilizzare un hypervisor è sicuramente la scelta migliore.
Un altro motivo per cui è preferibile usare una VM rispetto a WSL è se si necessita di un ambiente grafico. E' vero, WSL è integrato in Windows, ma la grossa limitazione è che non dispone di un'interfaccia grafica a sé (a meno che non si usi X11). Una VM, d'altro canto, permette di eseguire applicazioni Desktop senza nessuna limitazione (forse qualche leggero rallentamento, ma nulla di che).
WSL2 risulta ottimo invece per chi vuole imparare a usare Linux senza la necessità di doversi preoccupare di installare e configurare tutto l'ambiente. Un principiante che vuole imparare a usare la shell del pinguino farà molto più in fretta ad appoggiarsi a WSL2 rispetto ad installare e configurare una VM.
Il sovraccarico sulla CPU e RAM, nonché dunque le prestazioni generali, sono molto più ottimizzate e meno invasive su WSL2 rispetto ad uno VM, proprio grazie al fatto che WSL integri il proprio kernel a differenza della VM che deve emulare necessariamente tutto quanto il sistema.Un altro motivo per cui è preferibile usare una VM rispetto a WSL è se si necessita di un ambiente grafico. E' vero, WSL è integrato in Windows, ma la grossa limitazione è che non dispone di un'interfaccia grafica a sé (a meno che non si usi X11). Una VM, d'altro canto, permette di eseguire applicazioni Desktop senza nessuna limitazione (forse qualche leggero rallentamento, ma nulla di che).
WSL2 risulta ottimo invece per chi vuole imparare a usare Linux senza la necessità di doversi preoccupare di installare e configurare tutto l'ambiente. Un principiante che vuole imparare a usare la shell del pinguino farà molto più in fretta ad appoggiarsi a WSL2 rispetto ad installare e configurare una VM.
Se hai solo bisogno di programmi a riga di comando, come linguaggi o compilatori, WSL è l'ideale. Il subsystem si rivolge proprio agli sviluppatori, in particolare a quelli che lavorano nello sviluppo web, poiché non hanno bisogno di accedere al kernel molto spesso. Se si usa principalmente Windows e occasionalmente ci si immerge in Linux, installare un sistema Linux completo ha poco senso. È molto più veloce lanciare il terminale WSL piuttosto che avviare una VM completa ogni volta.
2 Installazione
2.1 Pre-requisiti
Per installare comodamente WSL (e la rispettiva versione 2) sul proprio PC è necessario disporre almeno del sistema operativo Windows 10 versione 2004 (build 19041 o superiore), oppure di Windows 11. Per verificare la versione del proprio sistema operativo eseguire tramite lo strumento "Run" (tasto Windows + R) il comando
winver
Se la versione del vostro OS è troppo vecchia, seguite la documentazione ufficiale per installare WSL manualmente.
2.2 Installare WSL
Installare WSL nei moderni OS è una questione di un singolo comando: aprite un prompt dei comandi (oppure un terminale con powershell) con privilegi di amministrazione ed eseguite
Bash:
wsl --install
Il comando abiliterà tutti i componenti necessari per l'installazione, scaricherà l'ultima versione disponibile del Kernel Linux, imposterà WSL2 come versione predefinita e installerà come prima distribuzione Ubuntu. Per installare una distro differente da Ubuntu è necessario utilizzare il comando
Bash:
wsl --install -d <Distribution Name>
L'elenco delle distribuzioni disponibili per l'installazione può essere consultato tramite i comandi
Bash:
wsl --list --online
# oppure
wsl -l -o
Dopo aver installato WSL e la relativa distro sarà necessario effettuare un reboot del sistema.
2.3 Avvio di Ubuntu
Dopo il reboot del pc inizierà l'installazione automatica della distro (potrebbe impiegarci diversi minuti) a cui seguirà la creazione del nome utente e delle credenziali di accesso.
o da un qualsiasi terminale tramite uno dei seguenti comandi:
Bash:
wsl
wsl -e /bin/bash
bash
wsl -d <NomeDistro>
Attenzione: il comandowsl
farà riferimento sempre alla Distro impostata come "distribuzione di default". In caso si disponga di più installazioni è necessario specificare o cambiare quale sia la distro di default tramite il comandowsl -s <DistributionName>
oppurewsl --setdefault <DistributionName>
.
2.4 Installare e configurare Windows Terminal
Windows Terminal è una versione avanzata del classico prompt dei comandi che permette una maggiore personalizzazione e ulteriori features rispetto alla sua versione "classic". Ogni volta che si installa una distro, in automatico viene creata una nuova istanza per quest'ultima all'interno del Windows Terminal che può successivamente venir customizzata a piacimento.
Windows Terminal può esser scaricato tramite lo Store ufficiale di Microsoft al seguente link.
Per customizzare l'aspetto e le features di questo terminale, seguite la documentazione ufficiale:
- https://docs.microsoft.com/en-us/windows/wsl/setup/environment#set-up-windows-terminal
- https://docs.microsoft.com/en-us/windows/terminal/get-started
- https://docs.microsoft.com/en-us/windows/terminal/custom-terminal-gallery/custom-schemes
3 Cosa ne pensate?
Cosa ne pensate di questa features messa a disposizione da Windows? La userete al posto di qualche macchina virtuale o pensate che non ne valga la pena e non aggiunga nulla di realmente utile?Made with ❤ for Inforge