Abitualmente, per la programmazione web, accedo alla mio secondo sistema operativo installato sul mio computer, con conseguente perdita di tempo per il riavvio e il cambio di sistema operativo.
Microsoft ha da poco implementato ufficialmente WSL (dal 2018) introducendolo nel Microsoft Store come app con cui si può installare Ubuntu.
Nel 2018 ne provai subito il funzionamento, ma non mi diede l’idea di essere molto stabile e sul momento, utilizzabile per processi lavorativi.
Ora a distanza di tre di anni, sono tornato a controllare lo sviluppo del progetto e devo ammettere di esserne rimasto sbalordito; i miglioramenti sono tanti e secondo me è quasi pronto per essere utilizzato in ambito lavorativo.
WSLG è sicuramente la strada giusta per implementare le funzionalità di Linux in Windows.
Ma cosa è di preciso WSL?
WSL, l’acronimo sta per “Windows Subsystem Linux“, in italiano “Sottosistema Windows per Linux“.
Su cosa sia lo dice direttamente il sito della Microsoft nel quale la descrizione replica:
“Consente agli sviluppatori di eseguire un ambiente GNU/Linux, inclusi la maggior parte degli strumenti da riga di comando, delle utilità e delle applicazioni, direttamente in Windows, senza modifiche e senza il sovraccarico di una macchina virtuale tradizionale o di una configurazione di avvio doppio.”
Possiamo subito capire il vantaggio che ha questo progetto, no dual boot, no macchine virtuali pesanti.
Completamente disponibile ed integrato in Windows.
Cosa è possibile fare con WSL?
La lista, tratta sempre dal sito Microsoft, replica:
- Scegliere le distribuzioni GNU/Linux preferite su Microsoft Store.
- Eseguire strumenti da riga di comando comuni, ad esempio grep, sed, awk o altri file binari ELF-64.
- Eseguire script della shell Bash e applicazioni della riga di comando GNU/Linux, tra cui:
- Strumenti: vim, emacs, tmux.
- Linguaggi: NodeJS,Javascript, Python, Ruby, C/C++, C# F#, Hashtag, Go e così via.
- Servizi: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Installare software aggiuntivo con lo strumento di gestione pacchetti per la distribuzione di GNU/Linux.
- Richiamare le applicazioni Windows usando una shell della riga di comando di tipo Unix.
- Richiamare le applicazioni GNU/Linux in Windows.
WSL, WSL2, WSLG differenze
Tratto sempre dal sito Microsoft troviamo la tabella delle differenze tra le due versioni WSL e WSL2:
Funzionalità | WSL 1 | WSL 2 |
---|---|---|
Integrazione tra Windows e Linux | ? | ? |
Tempi di avvio rapidi | ? | ? |
Small Resource Foot Print rispetto alle macchine virtuali tradizionali | ? | ? |
Esecuzione con le versioni correnti di VMware e VirtualBox | ? | ? |
Macchina virtuale gestita | ? | ? |
Kernel Linux completo | ? | ? |
Compatibilità completa con le chiamate di sistema | ? | ? |
Prestazioni tra i file system dei sistemi operativi | ? | ? |
Dalla seguente tabella si possono dedurre un paio di cose:
- Senza ombra di dubbio WSL2 è più completo.
- L’abbandono totale di Microsoft di una vera e propria integrazione del Kernel Linux, usando comunque una virtual machine, che comunque è ottimizzata per lo scopo.
- Nella lista non c’è WSLG, poichè accessibile solo ai Microsoft Insider.
Devo precisare una cosa del punto 2, poichè il sito Microsoft recita:
“WSL 2 è una nuova versione dell’architettura del sottosistema Windows per Linux che consente di eseguire i file binari ELF64 Linux in Windows”.
Gli obiettivi principali sono ottimizzare le prestazioni del file system e aggiungere la compatibilità completa con le chiamate di sistema.
Questa nuova architettura modifica il modo in cui i file binari Linux interagiscono con Windows e l’hardware del computer, ma offre comunque la stessa esperienza utente di WSL 1 (la versione attualmente disponibile a livello generale).
Il fatto che sia stata abbandonata la strada dell’implementazione totale per un utilizzo delle virtual machine non ha inficiato sulle prestazioni.
WLSG, l’integrazione quasi totale.
Torniamo al fatto che WLSG non è menzionato nella pagina Microsoft dove ho reperito le informazioni, poichè ancora in beta.
Ma si può comunque provare diventando Microsoft Insider, provando in anteprima le novità del sistema operativo o gli aggiornamenti in sviluppo sul sistema in uso.
WLSG in parole povere è WLS2 con implementato il server grafico con Microsoft Windows, di fatto la sigla WLSG sta per Windows Subsystem Linux Gui (Graphical User Interface).
Prima con WLS e WLS2 bisognava installare un server X (server grafico), per poter avere un’interfaccia funzionale, ma senza ombra di dubbio mal integrata; ora invece, allo stato attuale dello sviluppo, aprire semplicemente Gedit e vederlo aprirsi come se fosse un’applicazione nativa è una magia.
Apre le porte all’open source da parte di Microsoft e non solo, giovando alla compatibilità tra i due sistemi operativi.
Compatibilità bilaterale.
Abbiamo visto velocemente le tre differenze tra WLS, WLS2 e WLSG, ma dall’altra parte che compatibilità abbiamo?
Su Linux ormai da anni esiste Wine (Wine is not emulator), che come dice lo stesso nome non è un emulatore, cerca di far girare nativamente le applicazioni Windows su linux, la comunità ha una marea di guide sulle applicazioni più comuni, ma spesso ci sono bug e infunzionalità, ma dal canto suo, quando si riesce a far girare un’applicazione Microsoft su Linux con tutte le sue funzionalità, spesso va anche più veloce che su Microsoft Windows stessa.
Considerazioni inutili.
Noi di Variou-sh.com ci auguriamo e speriamo con tutto il cuore che la compatibilità bilaterale venga presa in seria considerazione da Microsoft, dato che lo hanno già fatto con Apple.
Sarebbe un peccato da parte loro non portare per esempio tutto il pacchetto Office su Linux per gli uffici.
Non ci resta che attendere e vedere come si evolverà questa compatibilità; pensate che tra poco potremo pure far girare le app Android sui nostri computer con installato Windows.