Con Windows 10 Microsoft ha introdotto WSL (Windows Subsystem for Linux o Sottosistema Linux per Windows), uno speciale layer software che permette di usare un’interfaccia compatibile con il kernel Linux mediante la quale si possono eseguire tutte le principali distribuzioni e installare i pacchetti software più noti.
WSL 2, seconda versione del Sottosistema Linux per Windows annunciata per la prima volta a maggio 2019 e introdotta ufficialmente in Windows 10 Aggiornamento di maggio 2020 (versione 2004) per poi essere estesa anche alle precedenti versioni del sistema operativo e a Windows 11, cambia radicalmente l’approccio utilizzato per portare Linux in Windows: anziché affidarsi a un layer di compatibilità, WSL 2 si appoggia alla virtualizzazione Hyper-V e al suo hypervisor.
Con WSL 2 viene tra l’altro utilizzata una versione ufficiale del kernel Linux, costantemente mantenuta aggiornata da parte di Microsoft usando Windows Update. Incredibile, almeno fino a qualche anno fa, ma vero.
Per eseguire i comandi Linux in Windows 10 e Windows 11 è consigliabile installare almeno una distribuzione Linux facendo riferimento al Microsoft Store: ci sono Ubuntu, Debian, openSUSE, Kali Linux, SUSE Linux Enterprise Server, Alpine, Pengwin e altre ancora.
Perché eseguire Linux in Windows
La possibilità di avviare una distribuzione come Ubuntu Linux in Windows è una comodità non da poco, soprattutto per i professionisti che ogni giorno si trovano a pestare i tasti sia su macchine con il sistema operativo Microsoft che su sistemi equipaggiati con le varie “declinazioni” del pinguino.
Avere la possibilità di eseguire Linux in Windows significa potersi servire di tutti i comandi abitualmente utilizzati anche sul sistema operativo Microsoft e di eseguire script congegnati per la piattaforma simbolo del software libero e dell’open source. Significa poter installare componenti server Linux direttamente su una macchina Windows ed eseguire test in maniera rapida ed efficace.
WSL utilizza un quantitativo limitato di risorse e permette di interagire non soltanto con una o più distribuzioni Linux ma anche con il file system utilizzato da Windows 10 e Windows 11.
Senza essere costretti a cercare e installare pacchetti software in versione Windows, si possono eseguire server web, script Python, PHP, ottenere certificati digitali gratuiti Let’s Encrypt e così via usando la finestra del terminale e i comandi Linux abituali.
Eseguire comandi dalla finestra del terminale Linux non ha prezzo: per gli utenti di Windows poter lavorare con Linux senza abbandonare il sistema operativo è un enorme passo in avanti.
Controindicazioni? Sia BitDefender che Check Point hanno a suo tempo ipotizzato nuove tipologie di attacco che potrebbero prendere di mira coloro che fanno uso di WSL.
Quelle considerazioni, assolutamente valide, erano però riferite alla prima versione di WSL che era solamente un layer di compatibilità per Windows. Adesso che Linux, con WSL 2, è eseguito all’interno di vere e proprie macchine virtuali basate su tecnologia Hyper-V i rischi sono nettamente inferiori, a patto di essere solerti nell’installazione delle patch di sicurezza mensilmente rilasciate da Microsoft. Anche quelle possono occasionalmente riferirsi a WSL.
Installare WSL e usare Linux in Windows 10 e Windows 11
Per installare Linux in Windows 10 e Windows 11 con WSL basta seguire alcuni semplici passaggi. Dai nostri test, le ultime versioni di WSL 2 sono compatibili anche con le soluzioni per la virtualizzazione di terze parti (Virtualbox, VMware,…) che possono essere contemporaneamente utilizzate sulla stessa macchina.
Microsoft afferma di aver messo a disposizione degli sviluppatori di soluzioni per la virtualizzazione concorrenti apposite API per rendere compatibili tali software con Hyper-V (sono integrate nella Piattaforma Windows Hyper-V).
Installare WSL 2 in Windows 10 e Windows 11 è semplicissimo: basta digitare cmd
nella casella di ricerca quindi cliccare su Esegui come amministratore.
Digitando semplicemente wsl --install
e premendo Invio, Windows installa i componenti software necessari.
Completato questo passaggio si può comunque premere la combinazione di tasti Windows+R
quindi scrivere optionalfeatures
e premere Invio.
Nella schermata Funzionalità Windows le seguenti caselle devono risultare spuntate:
- Piattaforma macchina virtuale
- Piattaforma Windows Hyper-V
- Sottosistema Windows per Linux
Sui sistemi ove già si utilizzava WSL (la prima versione della piattaforma) bisogna scaricare e installare il pacchetto aggiuntivo disponibile a questo indirizzo (cliccare sul link “Scarica il pacchetto di aggiornamento più recente del kernel Linux di WSL 2“).
Dopo riavviato il sistema si deve aprire una finestra del prompt dei comandi o di PowerShell con i diritti di amministratore e digitare quanto segue:
Così facendo Windows 10 utilizza per impostazione predefinita WSL 2 anziché la prima versione del Sottosistema Windows per Linux.
In Windows 11 non c’è invece da fare nulla perché il sistema operativo usa per default WSL 2.
Verificare le distribuzioni Linux installate e installarne di nuove
Digitando il comando che segue si ottiene l’elenco delle distribuzioni Linux eventualmente sul sistema:
La presenza dell’indicazione 1 sotto la colonna Version indica che la corrispondente distribuzione Linux sta ancora usando la prima versione di WSL. Per convertirla all’utilizzo di WSL 2 si può digitare:
Al posto di kali-linux bisogna ovviamente specificare il nome della distribuzione Linux installata che deve utilizzare WSL 2.
Per installare le distribuzioni Linux da eseguire in Windows 10 e Windows 11 si può accedere a questa pagina e richiedere il caricamento del pacchetto prescelto scegliendo per esempio fra Ubuntu, Debian, openSUSE e Kali Linux.
In alternativa, in una finestra del prompt dei comandi o di PowerShell aperte con i diritti di amministratore, si può impartire il comando che segue per ottenere l’elenco delle distribuzioni direttamente installabili:
Il comando è la versione abbreviata di wsl --list --online
, pur funzionante.
Se si volesse ad esempio installare Ubuntu 20.04 LTS si può scrivere semplicemente quanto segue:
Pensa WSL a scaricare la distribuzione Linux dai server Microsoft e a effettuarne l’installazione in Windows.
Sul Microsoft Store si trovano comunque le versioni più aggiornate di molte distribuzioni Linux: è sufficiente cliccare su Installa (assicurandosi della provenienza, ad esempio Canonical Group Limited nel caso di Ubuntu), lasciare che il download venga completato e attendere l’avvio della distribuzione (clic sul pulsante Apri).
La distribuzione Linux installata appare come icona nel menu Start di Windows e risulta disinstallabile anche digitando App installate nella casella di ricerca di Windows 11 e Installazione applicazioni in Windows 10.
Non appena avviata, la distribuzione Linux chiede di impostare un account utente root con la creazione di una password corrispondente.
La password digitata non viene visualizzata come accade con tutti i sistemi *nix-like. È quindi necessario impostare una password “solida” (Enter new UNIX username) e ripeterla quando richiesto (Retype new password).
La password dell’account root così definita deve poi essere utilizzata per ottenere i permessi più ampi disponibili quando vi fosse la necessità di usare il comando sudo
.
Come detto, la distribuzione o le distribuzioni Linux installate in Windows possono essere avviate anche dal menu Start cliccando sul collegamento automaticamente aggiunto.
Semplicemente premendo la combinazione di tasti Windows+R
e digitando wsl
verrà invece avviata la distribuzione impostata come predefinita (quella che nella risposta del comando wsl -l -v
è indicata con un asterisco).
Comandi WSL per gestire le distribuzioni Linux installate
Aprendo il prompt dei comandi di Windows (Windows+R
, digitare cmd
) oppure utilizzando una finestra PowerShell (Windows+X
quindi selezionare Windows PowerShell in Windows 10 o Terminale in Windows 11) è possibile impartire alcuni comandi per gestire le distribuzioni Linux. Vediamo di seguito quelli principali.
– Elencare le distribuzioni installate in WSL: wsl -l -v
Il comando visualizza la lista delle distribuzioni installate insieme con i rispettivi nomi identificativi. Viene riportata anche la versione di WSL in uso.
Con il comando wsl -l --running
viene restituito solo l’elenco delle distribuzioni Linux che risultano al momento in esecuzione tramite WSL.
– Impostare una distribuzione come predefinita: wsl -s
Il comando va utilizzato facendo seguire il nome di una distribuzione Linux installata con WSL. In questo modo è possibile impostarla come predefinita.
– Avviare una distribuzione: wsl -d
Facendo seguire al comando il nome della distribuzione Linux, è possibile avviarla con WSL. È un approccio alternativo rispetto all’utilizzo dell’icona visualizzata nel menu Start.
– Arrestare l’esecuzione di una distribuzione: wsl -t
Per interrompere l’esecuzione di una distribuzione Linux caricata con WSL basta eseguire questo comando seguito dal nome della distribuzione da arrestare.
– Creare un backup di una distribuzione: wsl --export
Quando si lavora con le distribuzioni Linux in WSL capita di voler salvare tutto il contenuto di una distribuzione per poi ripristinarlo successivamente. Si tratta di un’accortezza utile nel caso in cui si effettuassero modifiche e configurazioni importanti: creando un backup non si rischierà di perdere il lavoro svolto e si potrà eventualmente ripristinarlo nel caso in cui si svolgessero interventi inadeguati.
Al comando deve essere fatto seguire il nome di una distribuzione Linux installata e il nome del file .TAR all’interno del quale la configurazione deve essere salvata.
– Importare il backup di una distribuzione: wsl --import
Per ripristinare una distribuzione Linux della quale si era creato un backup in precedenza, basta usare il comando seguito dal nome da assegnare alla distribuzione e dal riferimento al file TAR.
– Disinstallare una distribuzione: wsl --unregister
La disinstallazione di una distribuzione Linux caricata in WSL può essere richiesta usando l’interfaccia di Windows, come abbiamo visto in precedenza, ma anche da riga di comando avendo ovviamente cura di specificare il nome della distribuzione da rimuovere.
Comandi utilizzabili in una distribuzione Debian, Ubuntu e derivate
Tutti i comandi Linux funzionano perfettamente con le distribuzioni caricate in WSL. Nel caso di Ubuntu, per esempio, si possono usare i seguenti per gestire i pacchetti software:
– sudo apt update
per scaricare informazioni aggiornate sui pacchetti disponibili
– sudo apt upgrade
per aggiornare tutti i pacchetti Linux all’ultima versione disponibile
Si possono anche combinare i comandi per eseguire in un colpo solo le due operazioni:
– sudo apt install
seguito dal nome del pacchetto per installare un’applicazione Linux (esempio sudo apt install python-minimal
)
– sudo apt remove
seguito dal nome del pacchetto per rimuovere un pacchetto Linux precedentemente installato
– sudo apt search
seguito dal termine che si desidera cercare all’interno degli archivi dei pacchetti software (ad esempio per individuare il nome esatto del software che s’intende installare).
Dalla finestra di WSL in Windows 10 e Windows 11 si possono anche installare e avviare programmi Linux dotati di interfaccia grafica.
Accedere al file system della macchina Linux da Windows
I file utilizzati dalle distribuzioni Linux in ambiente Windows vengono “stivati” nella cartella %localappdata%\Packages
nella sottocartella riferita alla distribuzione Linux installata mediante Microsoft Store.
Per accedere al file system usato dalle distribuzioni Linux installate sul sistema tramite WSL, basta premere la combinazione di tasti Windows+R
quindi digitare \\wsl$
.
In questo modo sarà possibile accedere al file system di qualunque distribuzione così come se si trattasse di una risorsa condivisa in rete.
Il vantaggio è che in questo caso è possibile intervenire sul contenuto dei file senza danneggiare il file system usato dalle distribuzioni Linux (si possono anche copiare e incollare file).
Per accedere rapidamente al file system di una specifica distribuzione basta usare, per esempio, la sintassi \\wsl$\Ubuntu-22.04
.
Per portarsi nel file system di Windows da WSL/Linux basta digitare ad esempio cd /mnt/c
: in questo modo ci si porterà nella cartella radice dell’unità C:.
Da tenere ben presente che la cartella /mnt/c/Users
contiene tutti i file dei profili utente usati in ambiente Windows mentre /home
le directory dei profili utente usati nella distribuzione Linux in uso. Basta verificare l’output che si ottiene impartendo i seguenti due comandi:
- ls /mnt/c/Users
- ls /home
Le distribuzioni Linux utilizzate in Windows 10 e Windows 11 con WSL possono essere eventualmente disinstallate digitando App e funzionalità nella casella di ricerca del sistema operativo quindi cercando all’interno dell’elenco contenente le app installate.