WSL (Windows Subsystem for Linux): cos'è, installazione e configurazione di Linux in Windows
WSL (Windows Subsystem for Linux) è una sottosistema integrata in Windows 10 e 11 che avvia una vera distribuzione Linux senza una macchina virtuale separata e senza doppio avvio. Si installa con un solo comando, wsl --install, in PowerShell come amministratore; per impostazione predefinita si installa WSL 2 con Ubuntu, dove gira un vero kernel Linux in una macchina virtuale leggera.
Windows Subsystem for Linux (WSL, sottosistema Windows per Linux) è un componente di Windows 10 e 11 che permette di eseguire una distribuzione Linux direttamente dentro Windows: terminale bash, apt, ssh, grep, Docker e qualsiasi utilità da riga di comando. Non serve installare VirtualBox né dividere il disco per un secondo sistema: Ubuntu si apre come una normale finestra di terminale in pochi secondi. Qui vediamo le differenze tra WSL 1 e WSL 2, come installare la sottosistema, come lavorare con i file, con VS Code e con le applicazioni grafiche, e come risolvere gli errori più comuni.
Cos'è WSL in Linux e Windows
In breve, WSL è un modo per avere un ambiente Linux completo per lo sviluppo e lo studio senza lasciare Windows. Si installa una distribuzione (Ubuntu, Debian, openSUSE, Kali, AlmaLinux e altre) dalla riga di comando o dal Microsoft Store, e poi si lavora come su un server: utenti, permessi, pacchetti, servizi.
È importante capire che cosa WSL non fa. Non è un emulatore di comandi come Cygwin e non è un insieme di utilità portate: in WSL 2 gira un vero kernel Linux, compilato da Microsoft. Per questo i binari Linux si eseguono senza ricompilazione, e le competenze acquisite con WSL si trasferiscono direttamente su un server reale.
Compiti tipici per la sottosistema:
- studiare Linux e la riga di comando senza un computer dedicato;
- sviluppo web quando la produzione gira su Linux (Python, Node.js, PHP, Go);
- Docker Desktop, che usa WSL 2 come motore;
- connessione ai server via SSH, script bash, lavoro con git in un ambiente familiare.
WSL 1 e WSL 2: qual è la differenza
Esistono due architetture della sottosistema. WSL 1 traduce le chiamate di sistema Linux in chiamate al kernel di Windows: non c'è un kernel Linux vero e proprio. WSL 2 esegue un vero kernel Linux in una macchina virtuale leggera basata su Hyper-V, che si avvia in pochi secondi e gestisce autonomamente la memoria.
| Parametro | WSL 1 | WSL 2 |
|---|---|---|
| Kernel | no, traduzione delle chiamate di sistema | vero kernel Linux |
| Compatibilità con le chiamate di sistema | parziale | completa |
| Docker, systemd | no | sì |
Velocità sui file Linux (~/) | più bassa | alta |
Velocità sui file Windows (/mnt/c) | alta | sensibilmente più bassa |
| Richiede la virtualizzazione | no | sì |
| Rete | condivisa con Windows | rete virtuale propria (NAT di default) |
Per quasi tutti gli scenari scegliete WSL 2, che è quella predefinita. WSL 1 ha senso se la virtualizzazione non si può attivare (per esempio se Windows stesso gira in una macchina virtuale senza virtualizzazione annidata) o se il progetto deve stare sul disco di Windows e lavorarci in modo intensivo.
Come installare WSL su Windows 10 e 11
Su Windows 11 e su Windows 10 versione 2004 o successiva (build 19041+) l'installazione si riduce a un comando. Aprite PowerShell o «Terminale» come amministratore ed eseguite:
wsl --install
Il comando attiva i componenti necessari di Windows, scarica il kernel di WSL 2 e installa Ubuntu. Dopo il riavvio si apre la finestra della distribuzione: scegliete un nome utente e una password Linux. Non sono collegati all'account di Windows; questa password servirà per sudo.
Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
Subito dopo aggiornate i pacchetti, come su ogni server appena installato:
sudo apt update && sudo apt upgrade -y
Come scegliere la distribuzione
Ubuntu è installata di default, ma si può scegliere un'altra distribuzione. Per vedere l'elenco disponibile:
wsl --list --online
Per installare una distribuzione specifica per nome dall'elenco:
wsl --install -d Debian
Se WSL è già installato, il comando aggiunge solo la nuova distribuzione. Potete tenerne più di una contemporaneamente, per esempio Ubuntu per il lavoro e Kali per gli esperimenti.
Verificare la versione: wsl -l -v
Per vedere le distribuzioni installate, il loro stato e la versione di WSL:
wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2
L'asterisco indica la distribuzione predefinita, quella che si avvia con il solo comando wsl. Per cambiarla: wsl --set-default Debian.
Passare da WSL 1 a WSL 2
La versione per le nuove installazioni si imposta con:
wsl --set-default-version 2
Una distribuzione già installata si converte separatamente (i dati si conservano, ma l'operazione può richiedere alcuni minuti):
wsl --set-version Ubuntu 2
La conversione inversa è wsl --set-version Ubuntu 1.
Comandi utili per la gestione di WSL
| Comando | Cosa fa |
|---|---|
wsl | apre la distribuzione predefinita |
wsl -d Debian | apre una distribuzione specifica |
wsl --shutdown | arresta tutte le distribuzioni e la macchina virtuale WSL 2 |
wsl --terminate Ubuntu | arresta una sola distribuzione |
wsl --update | aggiorna WSL e il kernel |
wsl --status | versione predefinita e stato generale |
wsl --export Ubuntu ubuntu.tar | backup della distribuzione in un archivio |
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tar | ripristino o clonazione di una distribuzione |
wsl --unregister Ubuntu | elimina la distribuzione insieme a tutti i dati |
Attenzione a --unregister: i file dentro la distribuzione vengono eliminati senza passare dal cestino. Prima fate un --export.
File di Windows da Linux e viceversa
I dischi di Windows vengono montati automaticamente dentro WSL nella cartella /mnt: il disco C: corrisponde a /mnt/c, D: a /mnt/d.
cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/
Nella direzione opposta i file Linux sono visibili in Esplora file tramite il percorso di rete \\wsl$\Ubuntu (in Windows 11 anche \\wsl.localhost\Ubuntu) e nella sezione «Linux» della barra laterale. Per aprire rapidamente la cartella Linux corrente in Esplora file:
explorer.exe .
Da WSL si possono avviare programmi di Windows (notepad.exe, code), e da PowerShell i comandi Linux con il prefisso wsl: wsl ls -la. Per convertire i percorsi tra i due sistemi c'è l'utilità wslpath:
wslpath 'C:\Users\alex'
/mnt/c/Users/alex
La regola principale per le prestazioni di WSL 2: conservate i progetti nel file system Linux (~/projects), non in /mnt/c. L'accesso ai dischi di Windows passa attraverso un protocollo di rete, e operazioni come git status o npm install su un progetto grande risultano molto più lente.
VS Code e WSL
Visual Studio Code può lavorare con WSL come con una macchina remota: l'interfaccia resta in Windows, mentre terminale, estensioni, interpreti e debugger girano dentro Linux. Serve l'estensione WSL (Microsoft). Poi, nel terminale della distribuzione, spostatevi nella cartella del progetto ed eseguite:
cd ~/projects/site
code .
Al primo avvio VS Code installa da solo la parte server in Linux. In basso a sinistra compare l'indicatore «WSL: Ubuntu»: significa che tutto ciò che lanciate dal terminale integrato gira in Linux. Le estensioni come Python o ESLint vanno installate «in WSL»: VS Code lo propone con un pulsante.
Applicazioni grafiche in WSL (WSLg)
In Windows 11 e nelle versioni recenti di WSL su Windows 10 è presente WSLg, il supporto alle applicazioni grafiche Linux già incluso, senza configurare un server X. Installate il programma come al solito: la sua finestra compare accanto alle finestre di Windows e il collegamento appare nel menu Start.
sudo apt install gedit -y
gedit ~/.bashrc &
WSLg supporta X11 e Wayland, l'audio e gli appunti. Per il lavoro quotidiano con un desktop Linux completo, però, non è un sostituto: WSL è pensato per singole applicazioni, non per GNOME o KDE nel loro insieme.
systemd e risorse di WSL 2
Le versioni recenti di WSL 2 supportano systemd: nelle nuove installazioni di Ubuntu è attivo di default. Se non lo è, aggiungete al file /etc/wsl.conf dentro la distribuzione:
[boot]
systemd=true
e riavviate la sottosistema da PowerShell con wsl --shutdown. Dopo questo funzionano systemctl e servizi come nginx o PostgreSQL.
Per limitare la memoria e i processori della macchina virtuale WSL 2 si usa il file %UserProfile%\.wslconfig lato Windows:
[wsl2]
memory=4GB
processors=2
Le impostazioni si applicano dopo wsl --shutdown.
Errori comuni durante l'installazione di WSL
Errore 0x80370102
Messaggio completo: «Impossibile avviare la macchina virtuale perché manca un componente necessario» (WslRegisterDistribution failed with error: 0x80370102). La causa è quasi sempre una sola: WSL 2 non riesce ad avviare la macchina virtuale. Controllate in quest'ordine:
- Se la virtualizzazione hardware è attiva nel BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) oppure AMD-V (SVM Mode). Lo stato si vede in Gestione attività → «Prestazioni» → CPU → «Virtualizzazione: Abilitata».
- Se è attivo il componente «Piattaforma macchina virtuale».
- Se l'hypervisor non è disattivato nel bootloader.
I componenti si attivano da PowerShell come amministratore:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto
Dopo riavviate il computer. Se lavorate dentro una macchina virtuale, sull'host va abilitata la virtualizzazione annidata, oppure usate WSL 1.
Altri problemi frequenti
- 0x800701bc — il kernel di WSL 2 non è aggiornato. Eseguite
wsl --update. - Il comando wsl --install mostra solo la guida — WSL è già installato; aggiungete una distribuzione con
wsl --install -d Ubuntu. - Nessuna connessione internet in WSL con la VPN — il client VPN intercetta le rotte della rete virtuale. In Windows 11 aiuta la modalità
networkingMode=mirrorednella sezione[wsl2]del file.wslconfig. - WSL occupa molto spazio — il disco virtuale
ext4.vhdxcresce, ma non si riduce da solo dopo la cancellazione dei file. Si può ridurre a mano oppure spostare la distribuzione con--export/--import. - Password Linux dimenticata — entrate come root da PowerShell con
wsl -u root, poi eseguitepasswd alex.
WSL, macchina virtuale o dual boot
WSL non è l'unico modo per avere Linux su un computer con Windows. La scelta dipende dal compito.
| Opzione | Vantaggi | Svantaggi | Quando sceglierla |
|---|---|---|---|
| WSL 2 | avvio in pochi secondi, file condivisi, VS Code, Docker | nessun desktop completo, particolarità di rete e dischi | sviluppo, studio della riga di comando, script |
| Macchina virtuale (VirtualBox, Hyper-V, VMware) | isolamento completo, snapshot, qualsiasi distribuzione e desktop, scheda di rete propria | più pesante, le risorse si riservano in anticipo | laboratorio di server, esperimenti con la rete, l'avvio e le partizioni |
| Dual boot | tutta la potenza dell'hardware, grafica e driver nativi | riavvio per cambiare sistema, rischio durante il partizionamento | Linux come sistema principale, giochi e calcolo GPU su Linux |
Per imparare Linux da zero, WSL di solito basta: file, permessi, processi, pacchetti, script bash e SSH funzionano come sul server. Una macchina virtuale serve quando si arriva a cose che in WSL sono organizzate diversamente: il bootloader, il partizionamento dei dischi fisici, le interfacce di rete e il firewall a livello dell'host.
Conclusione
Windows Subsystem for Linux offre un vero Linux dentro Windows con un solo comando, wsl --install. Scegliete WSL 2, verificate le versioni con wsl -l -v, tenete i progetti in ~/ e non in /mnt/c, e collegate VS Code tramite l'estensione WSL. Se l'installazione si blocca con 0x80370102, attivate la virtualizzazione nel BIOS e il componente «Piattaforma macchina virtuale». Con la preparazione di questa postazione inizia la pratica del corso di Linux.
Domande frequenti
WSL è gratuito?
Sì. WSL è incluso in Windows 10 e 11 in tutte le edizioni, compresa Home, e anche le distribuzioni Linux sono distribuite gratuitamente.
Si può eseguire Docker in WSL?
Sì, ma solo con WSL 2. Si può installare Docker Desktop con il motore WSL 2 oppure installare Docker Engine direttamente nella distribuzione, come su un normale server Ubuntu.
Dove sono fisicamente memorizzati i file della distribuzione WSL?
In WSL 2 si trovano in un disco virtuale ext4.vhdx nel profilo utente di Windows. Non serve aprirlo direttamente: usate il percorso \\wsl$\ in Esplora file.
Come si disinstalla WSL completamente?
Eliminate le distribuzioni con wsl --unregister seguito dal nome della distribuzione, poi rimuovete l'applicazione «Sottosistema Windows per Linux» in «App installate» e, se serve, disattivate i componenti di Windows.
Si può spostare WSL su un altro disco?
Sì: wsl --export Ubuntu ubuntu.tar, poi wsl --unregister Ubuntu e wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. Nelle versioni recenti esiste anche il comando wsl --manage Ubuntu --move.
Questo argomento è trattato in modo approfondito, con pratica, nel corso «Linux: с нуля до уверенного администрирования».
Vai al corso