Guida

WSL (Windows Subsystem for Linux): cos'è, installazione e configurazione di Linux in Windows

Aggiornato: · Skillaria.Top

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.

ParametroWSL 1WSL 2
Kernelno, traduzione delle chiamate di sistemavero kernel Linux
Compatibilità con le chiamate di sistemaparzialecompleta
Docker, systemdnosì
Velocità sui file Linux (~/)più bassaalta
Velocità sui file Windows (/mnt/c)altasensibilmente più bassa
Richiede la virtualizzazionenosì
Retecondivisa con Windowsrete 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

ComandoCosa fa
wslapre la distribuzione predefinita
wsl -d Debianapre una distribuzione specifica
wsl --shutdownarresta tutte le distribuzioni e la macchina virtuale WSL 2
wsl --terminate Ubuntuarresta una sola distribuzione
wsl --updateaggiorna WSL e il kernel
wsl --statusversione predefinita e stato generale
wsl --export Ubuntu ubuntu.tarbackup della distribuzione in un archivio
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tarripristino o clonazione di una distribuzione
wsl --unregister Ubuntuelimina 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:

  1. 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».
  2. Se è attivo il componente «Piattaforma macchina virtuale».
  3. 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=mirrored nella sezione [wsl2] del file .wslconfig.
  • WSL occupa molto spazio — il disco virtuale ext4.vhdx cresce, 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 eseguite passwd 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.

OpzioneVantaggiSvantaggiQuando sceglierla
WSL 2avvio in pochi secondi, file condivisi, VS Code, Dockernessun desktop completo, particolarità di rete e dischisviluppo, studio della riga di comando, script
Macchina virtuale (VirtualBox, Hyper-V, VMware)isolamento completo, snapshot, qualsiasi distribuzione e desktop, scheda di rete propriapiù pesante, le risorse si riservano in anticipolaboratorio di server, esperimenti con la rete, l'avvio e le partizioni
Dual boottutta la potenza dell'hardware, grafica e driver nativiriavvio per cambiare sistema, rischio durante il partizionamentoLinux 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.

Impara l’argomento in video

Questo argomento è trattato in modo approfondito, con pratica, nel corso «Linux: с нуля до уверенного администрирования».

Vai al corso