È uscito il Corso Java Completo
Torna al blog

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.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

5 min di lettura

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?

WSLMacchina virtuale
AvvioIstantaneoMinuti
RisorseLeggeroPesante
IntegrazioneMolto altaIsolata
IsolamentoParzialeCompleto
Sistemi diversi da LinuxNo
Simula un server veroParzialmente

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.