Introduzione a Windows Subsystem for Linux (WSL)
Windows e Linux sono due dei sistemi operativi più utilizzati al mondo. Ciononostante, non potrebbero essere più diversi: Windows è un prodotto commerciale di Microsoft, una delle imprese di sviluppo software più grandi al mondo. Linux, al contrario, deve il suo sviluppo alla collaborazione volontaria di migliaia di persone, il che lo rende un cosiddetto Free and Open Source Software (FOSS).
Windows viene utilizzato principalmente nel settore privato e commerciale. Linux, invece, viene solitamente installato nei server e nei computer di professionisti informatici e persone con un forte interesse per questo campo. Tantoché i più propensi a usare Linux sono sviluppatori. Inoltre, questo sistema operativo aperto serve anche da base per il sistema operativo mobile Android.
Con il sottosistema Windows per Linux (WSL) gli utenti ottengono senza troppa fatica accesso a migliaia di pacchetti software e strumenti open source. Fino a questo momento l’unica soluzione disponibile era l’impiego di una macchina virtuale o riavviando il computer in ambiente Linux dual-boot dedicato. Ora, grazie al WSL bastano pochi clic.
Che cos’è Windows Subsystem for Linux?
Il sottosistema Windows per Linux è un livello di compatibilità che permette di eseguire i programmi nativi di Linux direttamente dalla riga di comando di Windows. Nello specifico, WSL rende possibile l’esecuzione di file binari a 64 bit di Linux nello standard “Executable and Linkable Format” (ELF).
Il sottosistema Windows per Linux è disponibile a partire da Windows 10, sebbene l’interesse di Microsoft nel facilitare gli utenti Windows nel lavoro con gli strumenti Linux dal classico ambiente desktop risale a molto tempo prima. WSL nasce dal progetto “Microsoft Windows Services for Unix” (SFU / Interix), che a sua volta deriva dallo sviluppo del sottosistema POSIX già integrato in Windows NT. Lo sviluppo continuo ha portato oggi al rilascio di Windows Subsystem for Linux 2 (WSL2).
Prima dell’avvento di WSL gli utenti erano costretti ad adoperarsi in prima persona per combinare il meglio degli universi Windows e Linux. In linea di massima c’erano due possibilità per rendere i programmi Linux eseguibili su Windows:
- Impiego di una macchina virtuale. In questo caso un’intera installazione Linux viene installata in Windows come computer virtuale. Molto facile da usare, permette l’utilizzo di tutte le funzioni delle applicazioni Linux, pesa però sulle risorse hardware. Inoltre, lo scambio tra i programmi in esecuzione sui due sistemi operativi è possibile soltanto limitatamente.
- Impiego dell’ambiente di runtime Linux Cygwin. Installandolo in Windows permette l’utilizzo di molti dei programmi Linux più utilizzati. Cygwin assicura uno scambio, seppur limitato, tra i programmi Windows e Linux.
In alternativa, gli utenti avevano la possibilità di configurare Linux parallelamente all’installazione Windows. Questo setup conosciuto come dual-boot richiede tuttavia il riavvio del computer per passare da un sistema operativo all’altro, rendendo perciò impossibile lo scambio tra i programmi in esecuzione di Windows e Linux.
Windows Subsystem for Linux non ha una macchina virtuale, il che lo rende performante. Tuttavia, non dispone neanche di un kernel Linux completo e quindi non tutte le applicazioni sono supportate. In particolare, WSL da solo non permette l’esecuzione di programmi Linux con interfaccia grafica (GUI). Per questo specifico scenario d’impiego esistono soluzioni alternative che richiedono però ulteriori passaggi per l’installazione e la configurazione.
I requisiti per l’impiego di WSL
Di per sé l’uso del sottosistema Windows per Linux non richiede alcun sistema particolare. Il vostro computer deve solamente disporre di un processore x64 o ARM, ormai presente in qualsiasi dispositivo moderno. Dopodiché, avete bisogno di Windows 10 a 64 bit con versione 1709 o più recente. Se non siete sicuri di quale edizione e versione avete installata sul vostro computer potete eseguire le seguenti operazioni per verificarlo:
- Premete il tasto con il logo di Windows + [R], digitate “winver” nel campo di testo che compare e premete [Invio].
- In alternativa, fate clic su Start > Impostazioni > Sistema > Informazioni > Specifiche Windows e leggete i valori che compaiono.
Come attivare/installare il sottosistema Windows per Linux
Per gli utenti privati il procedimento per attivare WSL sul proprio sistema consiste in pochi passaggi che illustriamo qui di seguito:
- Fate clic su Start > Pannello di controllo > Programmi > Programmi e funzionalità > Attiva o disattiva funzionalità di Windows.
- Spuntate la voce “Windows Subsystem for Linux”.
- Riavviate il computer.
- Aprite il Microsoft Store e digitate “Linux” nel campo di ricerca. Vi viene mostrata una selezione delle distribuzioni Linux a disposizione.
- Cliccate sulla distribuzione Linux desiderata e quindi su “Ottieni”. Se non siete sicuri di quale distribuzione è quella che fa per voi, vi consigliamo l’installazione di “Ubuntu Linux”.
- Completata l’installazione, avviatela.
- Dalla finestra che si apre vengono scaricati e decompressi i pacchetti. Questa operazione può durare alcuni minuti. Dopodiché vi viene richiesto di indicare un nome utente e una password per la nuova installazione Linux.
Con WSL potete eseguire più distribuzioni Linux parallelamente. Per farlo dovete creare un account per ciascuna delle distribuzioni utilizzate.
In alternativa ai primi due passaggi potete usare il comando PowerShell qui sotto indicato per attivare il sottosistema Windows per Linux. Fate attenzione a eseguire il comando come amministratore. Dopo l’esecuzione riavviate il vostro computer e riprendete le indicazioni fornite a partire dal punto 4.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
I primi passaggi con Windows Subsystem for Linux
Quali passaggi eseguire dopo l’attivazione del sottosistema Windows per Linux e dell’installazione di una distribuzione Linux dipende molto dall’utilizzo che ne volete fare. Uno sviluppatore web ha solitamente bisogno di un profilo di applicazioni diverso da quello di uno sviluppatore di app. Di seguito riassumiamo due esempi di configurazioni iniziali.
Visualizzare e gestire le distribuzioni Linux installate
Lo strumento di Windows wsl.exe sulla riga di comando serve per la gestione delle distribuzioni Linux installate. Aprite il prompt dei comandi e digitate il seguente comando per visualizzare le opzioni a vostra disposizione del comando wsl:
wsl --help
Per approfondire affidatevi alle informazioni di riferimento sui comandi del sottosistema Windows per Linux di Microsoft.
Visualizzare le distribuzioni Linux installate con il sottosistema Windows per Linux
Grazie al sottosistema Windows per Linux è possibile installare e utilizzare diverse distribuzioni Linux. Eseguite il seguente comando sul prompt per ottenere una panoramica delle distribuzioni installate:
wsl --list --verbose
Avviare la distribuzione Linux di default con Windows Subsystem for Linux
Per avviare la distribuzione Linux impostata di default non dovete fare altro che eseguire il comando wsl senza alcun parametro:
wsl
Subito dopo avrete effettuato il login con il vostro account Linux e avrete accesso ai noti comandi Linux.
Aggiornare la distribuzione Linux con WSL
Non appena fatto il login per la prima volta nella vostra distribuzione Linux dovete aggiornare i pacchetti software installati. Per farlo utilizzate il comando seguente:
sudo apt update && sudo apt upgrade
Trattandosi di un’operazione che influenza l’intero sistema Linux, il comando inizia con “sudo”. Durante questa operazione dovete inserire la password scelta al momento dell’installazione della distribuzione Linux.
Installare Git con il sottosistema Windows per Linux
Git è uno degli strumenti più comunemente usati per il controllo delle versioni dei codici dei progetti. Per installare Git all’interno della distribuzione Linux adoperate il seguente comando:
sudo apt install git
Eseguire strumenti Linux da Windows con Windows Subsystem for Linux
Avete già visto come effettuare il login e utilizzare comandi Linux nella distribuzione Linux grazie agli strumenti wsl, ma c’è anche una soluzione alternativa. Potete eseguire i comandi Linux direttamente dalla shell di Windows, il che può risultare utile per usare i comandi Linux negli script di PowerShell. Aggiungete semplicemente il comando Linux desiderato all’apertura dello strumento wsl:
# Usare il comando Linux `ls` per visualizzare il contenuto della directory corrente
wsl ls -la
Usare gli strumenti Windows dalla riga di comando di Linux con WSL
Come già mostrato, potete eseguire script direttamente dal prompt dei comandi di Windows o dalla PowerShell. Ma anche il contrario funziona: potete usare gli strumenti del prompt dei comandi di Windows dalla riga di comando di Linux o negli script Linux. Questi tool possono essere combinati esattamente come qualsiasi comando Linux.
Nell’esempio di seguito utilizziamo il tool di Windows ipconfig.exe per visualizzare le informazioni di rete in combinazione con lo strumento Linux grep per filtrare i risultati IPv4 e cut per eliminare le colonne:
ipconfig.exe | grep IPv4 | cut -d: -f2
Quando utilizzare il sottosistema Windows per Linux
WSL serve principalmente per eseguire i comandi Linux nella riga di comando e negli script. Oltre a ciò, permette anche di collegare gli strumenti Windows con quelli di Linux e viceversa. Per questo motivo risulta interessante soprattutto per gli sviluppatori. In particolare, se WSL è attivato, facilita lo sviluppo web e la programmazione open source. Alcuni pratici esempi sono:
- Installare una o più distribuzioni Linux da Microsoft Store.
- Utilizzare strumenti di riga di comando come grep, sed e awk.
- Eseguire altri file binari ELF a 64 bit.
- Eseguire script per la shell Bash e altri ambienti shell.
- Usare applicazioni basate su terminale come vim, emacs e tmux.
- Usare linguaggi di programmazione e strumenti associati, come NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, ecc.
- Eseguire servizi Linux sulla propria macchina, come SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL, ecc.
- Installare software aggiuntivi con il gestore di pacchetti della propria distribuzione Linux.
- Eseguire applicazioni Windows grazie a una riga di comando simile a Unix.
- Eseguire applicazioni Linux in Windows.
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso