Cos'è WSL: Linux dentro Windows per sviluppare
Come funziona WSL, come si installa, perché è il modo migliore di usare Linux su Windows e gli errori di prestazioni che quasi tutti fanno all'inizio.
Chi sviluppa su Windows si è trovato a lungo davanti a una scelta scomoda: convivere con un terminale diverso da quello dei server, oppure installare Linux in dual boot. WSL ha eliminato il problema: Linux vero, dentro Windows, senza riavviare. In questo articolo trovi come funziona, come si installa e l'errore di prestazioni che fanno quasi tutti.
Cos'è
WSL (Windows Subsystem for Linux) esegue una distribuzione Linux completa dentro Windows, con accesso al file system di entrambi i sistemi e senza bisogno di riavviare o usare una macchina virtuale tradizionale.
Apri un terminale e hai una shell Linux vera: stessi comandi, stesso gestore di pacchetti, stesso comportamento dei server su cui poi pubblicherai.
La versione attuale (WSL 2) usa un kernel Linux reale in una macchina virtuale leggera e molto integrata. La prima versione traduceva le chiamate di sistema, con più limiti — se leggi guide vecchie, la distinzione può confondere.
Perché conta
Le ragioni concrete, al di là della curiosità:
Il tuo codice girerà su Linux. Sviluppare nello stesso ambiente della produzione elimina un'intera categoria di sorprese.
Gli strumenti funzionano come dovrebbero. Molti strumenti di sviluppo nascono per Unix, e su Windows nativo hanno comportamenti diversi o richiedono adattamenti.
Docker funziona bene. Docker Desktop su Windows usa WSL 2 come base: è il motivo per cui i container su Windows sono diventati utilizzabili.
Non rinunci a Windows. Continui a usare i tuoi programmi, e il terminale Linux è una finestra come le altre.
È il modo migliore per imparare Linux se lavori su Windows — l'ambiente è vero, e non devi toccare nulla del sistema.
Come si installa
Su Windows recente è diventato banale:
wsl --install
Da PowerShell come amministratore. Installa il sottosistema e Ubuntu come distribuzione predefinita, poi chiede un riavvio.
Per scegliere un'altra distribuzione:
wsl --list --online # vedi quelle disponibili
wsl --install -d Debian # installane una specifica
Comandi utili:
wsl --list --verbose # cosa hai installato e in che versione
wsl --shutdown # ferma tutto (utile per liberare memoria)
wsl --set-default Ubuntu # quale parte di default
Al primo avvio ti chiede di creare un utente: è un utente Linux, separato da quello di Windows.
L'errore che quasi tutti fanno
Questa è la parte più importante dell'articolo, perché determina se WSL sembrerà veloce o lentissimo.
I due sistemi vedono i file l'uno dell'altro:
- Da Linux, il disco C di Windows sta in
/mnt/c/ - Da Windows, i file Linux sono raggiungibili tramite
\\wsl$\
Funziona, ma l'accesso incrociato è molto lento.
L'errore tipico: tenere il progetto in C:\Users\nome\progetti e lavorarci da WSL passando per /mnt/c/. Un'installazione di dipendenze che dovrebbe richiedere venti secondi ne richiede diversi minuti, e chi lo prova conclude che WSL sia lento.
La regola: tieni i progetti nel file system Linux, dentro la home:
cd ~
mkdir progetti
La differenza di velocità è drastica, soprattutto su operazioni che toccano migliaia di file — installazioni di pacchetti, build, git status su repository grandi.
E VS Code lo gestisce nativamente: con l'estensione dedicata, apri una cartella WSL e l'editor gira su Windows mentre tutto il resto — terminale, estensioni, linguaggi — esegue dentro Linux. È la configurazione che funziona meglio.
Dal terminale WSL:
code . # apre VS Code collegato a WSL
Come si integra
Le cose che rendono WSL comodo rispetto a una macchina virtuale classica:
Esegui programmi Windows da Linux:
explorer.exe . # apre la cartella in Esplora risorse
code . # apre VS Code
E comandi Linux da Windows:
wsl ls -la
La rete è condivisa: un servizio che avvii dentro WSL sulla porta 3000 è raggiungibile da localhost:3000 nel browser di Windows. Funziona senza configurare nulla.
Le applicazioni grafiche Linux funzionano sulle versioni recenti, senza configurazioni particolari.
I limiti da conoscere
Non è una macchina virtuale completa. Alcune cose di basso livello — moduli del kernel personalizzati, alcune configurazioni di rete — non funzionano.
Il consumo di memoria cresce. WSL 2 tende a trattenere memoria; wsl --shutdown la libera quando serve.
L'accesso incrociato ai file è lento. Già detto, ma è il punto che pesa di più.
Non sostituisce un server. È un ambiente di sviluppo: per capire davvero la gestione di una macchina Linux serve un VPS o una macchina virtuale vera.
I servizi non partono da soli come su un sistema Linux completo, anche se il supporto in questo senso è migliorato.
WSL o macchina virtuale?
| WSL | Macchina virtuale | |
|---|---|---|
| Avvio | Istantaneo | Minuti |
| Risorse | Leggero | Pesante |
| Integrazione | Molto alta | Isolata |
| Isolamento | Parziale | Completo |
| Sistemi diversi da Linux | No | Sì |
| Simula un server vero | Parzialmente | Sì |
WSL se sviluppi. Macchina virtuale se devi simulare un server, provare configurazioni di sistema, o ti serve isolamento vero — vedi cos'è una macchina virtuale.
Non sono alternative: parecchie persone usano entrambi.
In sintesi
WSL esegue Linux dentro Windows, con integrazione profonda tra i due sistemi: stesso terminale dei server, senza riavviare né rinunciare a Windows.
Si installa con un comando, ed è la base su cui funziona Docker Desktop — motivo per cui i container su Windows sono diventati pratici.
L'unica cosa da sapere assolutamente: tieni i progetti nel file system Linux, non su /mnt/c/. L'accesso incrociato è lentissimo, ed è la ragione per cui molti concludono erroneamente che WSL sia lento.
Con VS Code collegato a WSL, la configurazione è quella che offre il miglior compromesso su Windows: editor nativo, tutto il resto in Linux.
Se stai partendo da zero con Linux, il quadro generale è in cos'è Linux.