>_ Sistemi operativi e Linux

WSL: usare Linux dentro Windows senza macchine virtuali

Cos'è il Windows Subsystem for Linux, come installarlo e scegliere la distribuzione, dove tenere i file per avere buone prestazioni e quali limiti ha.

Per anni chi lavorava su Windows e aveva bisogno degli strumenti Linux doveva scegliere tra un doppio avvio, una macchina virtuale completa o strumenti di compatibilità parziali. Il Windows Subsystem for Linux, WSL, ha cambiato la situazione: permette di eseguire una distribuzione Linux vera, con la sua shell e i suoi pacchetti, dentro Windows, aprendola come una normale finestra di terminale. Per chi sviluppa siti, scrive script o studia l'amministrazione di sistema è spesso la soluzione più comoda.

WSL 1 e WSL 2

Esistono due versioni con architetture diverse:

  • WSL 1 traduceva le chiamate di sistema di Linux in chiamate di Windows. Non c'era un vero kernel Linux, e alcuni programmi non funzionavano.
  • WSL 2 esegue un vero kernel Linux dentro una macchina virtuale leggera, gestita da Windows in modo trasparente. La compatibilità è molto più ampia e le operazioni sui file Linux sono più veloci.

Oggi WSL 2 è quella predefinita e quella da usare, salvo casi particolari in cui serva lavorare intensamente su file che si trovano nel disco di Windows.

Installazione

Sulle versioni attuali di Windows 10 e Windows 11 basta un comando da un terminale aperto come amministratore:

wsl --install

Il comando attiva i componenti necessari e installa Ubuntu come distribuzione predefinita. Dopo il riavvio viene chiesto di creare un utente Linux con la sua password, che non deve coincidere con quella di Windows. Per vedere le altre distribuzioni disponibili e installarne una diversa:

wsl --list --online
wsl --install -d Debian

È richiesto che la virtualizzazione sia attiva nel firmware del computer; su molti portatili lo è già, altrimenti va abilitata nelle impostazioni UEFI.

Comandi di gestione utili

Dal terminale di Windows, PowerShell o Prompt dei comandi:

Comando Effetto
wsl -l -v elenca le distribuzioni installate e la loro versione
wsl --shutdown spegne tutte le distribuzioni e la macchina virtuale
wsl --update aggiorna il componente WSL e il kernel
wsl --set-default Debian sceglie la distribuzione predefinita
wsl --export Ubuntu ubuntu.tar crea una copia completa della distribuzione
wsl --import ripristina o duplica una distribuzione da un archivio

--export è un modo semplice per fare un backup dell'intero ambiente prima di un esperimento rischioso. Dentro la distribuzione, poi, si usa il gestore di pacchetti normale: sudo apt update && sudo apt upgrade su Ubuntu e Debian.

Dove tenere i file

È il punto che fa la differenza più grande nelle prestazioni. I due mondi si vedono a vicenda:

  • da Linux, i dischi di Windows sono montati in /mnt/c, /mnt/d e così via;
  • da Windows, i file Linux sono raggiungibili da Esplora file all'indirizzo \\wsl$\Ubuntu o \\wsl.localhost\Ubuntu.

Attraversare questo confine però costa. Con WSL 2, un progetto che sta in /mnt/c/Users/... e viene compilato o gestito da strumenti Linux è sensibilmente più lento rispetto allo stesso progetto nella home Linux, per esempio ~/progetti. La regola pratica: i file su cui lavorano gli strumenti Linux stanno nel filesystem Linux. Gli editor moderni sanno aprire una cartella dentro WSL ed eseguire lì le estensioni, così si modifica da Windows senza perdere velocità.

Da Linux si può aprire la cartella corrente in Esplora file con explorer.exe ., e in generale lanciare programmi Windows indicando il nome con l'estensione .exe.

Rete, risorse e programmi grafici

I servizi avviati in WSL, come un server di sviluppo sulla porta 3000, sono normalmente raggiungibili da Windows all'indirizzo localhost. La macchina virtuale usa una parte della memoria e dei processori del computer; i limiti si regolano nel file .wslconfig nella cartella utente di Windows, con voci come memory= e processors=. Se dopo un uso intenso la memoria occupata resta alta, wsl --shutdown la libera.

Sulle versioni recenti WSL supporta anche le applicazioni Linux con interfaccia grafica, che compaiono come finestre normali di Windows, e l'accesso alla scheda video per carichi di calcolo, quando i driver lo prevedono.

Abilitare systemd

Molte guide per Linux presuppongono systemd per gestire i servizi. Nelle versioni attuali di WSL si può attivare aggiungendo alla distribuzione il file /etc/wsl.conf con:

[boot]
systemd=true

e riavviando con wsl --shutdown. Le nuove installazioni di Ubuntu lo hanno spesso già attivo.

Limiti da conoscere

  • Non è un server: quando chiudi tutte le finestre, la distribuzione viene fermata dopo poco.
  • Le prestazioni sui file di Windows restano inferiori a quelle sui file Linux.
  • L'accesso diretto all'hardware è limitato; i dispositivi USB richiedono strumenti aggiuntivi per essere collegati.
  • Non sostituisce un'installazione reale se vuoi provare un ambiente desktop Linux nella sua interezza o testare driver.

Nel mio lavoro WSL è la scelta che consiglio a chi deve imparare la riga di comando Linux senza abbandonare Windows: si sbaglia senza conseguenze, e una distribuzione rovinata si reinstalla in pochi minuti.

In sintesi

  • WSL 2 esegue un vero kernel Linux in una macchina virtuale leggera e trasparente.
  • wsl --install installa tutto; wsl -l -v, --shutdown ed --export coprono la gestione.
  • I progetti usati da strumenti Linux vanno tenuti nella home Linux, non in /mnt/c.
  • .wslconfig limita memoria e processori, /etc/wsl.conf permette di attivare systemd.
  • È ideale per sviluppo e apprendimento, non come server sempre acceso.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica e in psicologia, unisce l'analisi tecnica alla comprensione del fattore umano.

Leggi anche