Microsoft Windows Subsystem for Linux

Da quando Microsoft ha annunciato che il progetto Astoria (progetto per rendere compatibili le app Android in Windows 10) era chiuso, ci siamo tutti interrogati su cosa avessero in mente, se fosse una scelta obbligata da problemi tecnici o una scelta di marketing, se avessero in mente qualcos’altro o fosse una faccenda chiusa.

Ed ecco che il 30 Marzo appare la notizia: Bash arriverà su Windows 10 la prossima estate, con Windows Subsystem for Linux. 
WSL è costituito da due parti:
– core subsystem:
comprende le API Linux e permette di eseguire nativamente applicazioni e librerie Linux
– un pacchetto software (fornito da Canonical) con bash ed altri stumenti a linea di comando solitamente presenti in Ubuntu.

 

una scelta PERFETTA

Dopo la mancanza del progetto Astoria, Microsoft è dovuta tornare a pensare come risolvere il problema “migrazione” verso altri sistemi operativi.
Alla domanda “perchè si migra su altri sistemi operativi?” ci si è risposti semplicemente con… Open Source.
Lavorare a progetti Open Source su Windows è sempre problematico. E questo è uno dei tanti motivi per cui gli sviluppatori migrano su altri OS.
Ed ecco arrivare WSL: un ambiente bash NATIVO che potrà essere eseguito su Windows. Potrete quindi installare tutti i tool tipici di linux e lavorare direttamente su Windows. Potrete scrivere codice c e compilarlo con gcc. Potrete eseguire fork. Potrete installare git. E potremmo continuare ancora e ancora.

Ma se ci pensate, c’è una doppia faccia della medaglia. Se da una parte potete lavorare con i tool, eseguiti nativamente su linux eseguito in Windows, dall’altra potrete lavorare con i tool Linux insieme a quelli Windows.
Ora, immaginate di lavorare a un progetto Ruby su GitHub.
Aprite Bash, apt-get install git, ./git-clone.. E poi… Lo aprite in Visual Studio, lavorate, salvate… Tornate su Bash, eseguite WEBrick, aprite un browser su Windows e potrete testare la vostra App in locale, o meglio: su WEBrick eseguito su Linux eseguito in Windows.
TUTTO NATIVAMENTE.

E’ inutile continuare a rimarcare quanto ciò sia tremendamente vantaggioso, in termini di tempo e comodità.

Ecco il video di presentazione:

 

Davvero tutto nativo?

Microsoft promette che sarà così. Nel Kernel Windows sarà presente un Kernel Linux (WSL) che si interfaccerà con la Bash utente. In questo modo, tutte le chiamate API Linux saranno eseguite velocemente dal Kernel Linux, senza nessuna emulazione.

Bash on Windows

 

Ed ecco la compilazione di un file .c con gcc:

gcc on windows 10

 

Insider Preview build 14316

Oggi è stata pubblicata la prima Build per il programma Insider Preview nel quale è presente anche WSL e Bash!
A breve pubblicheremo un altro articolo con la Preview!

 

4 COMMENTI

  1. Se solo tutto ciò fosse stato possibile appena un anno fa, mi avrebbe risparmiato un sacco di grattacapi con installazioni di Ubuntu di fianco a Windows rinunciando a Visual Studio…
    Ad ogni modo, da quando sviluppare Open Source su Windows è un problema? Io non ne ho mai avuti.

    • Ciao Francesco!
      Eh se fosse stato possibile anni fa avremmo risparmiato tutti tempo!

      Comunque il fatto è che è sempre stato preferito l’ambiente linux o OSx per sviluppare open source, in quanto offrivano strumenti molto più completi e veloci.
      Ora questo limite è completamente abbattuto, potendo quindi avere un’integrazione completa di tutti i tools che si usavano in linux o OSx e l’integrazione completa con gli strumenti Windows (ad esempio Visual Studio). 😉

    • Perchè dovrebbe? Non c’è alcun motivo (tecnico, e non propagandistico) per cui dovrebbe andare lento. Infatti tutti i BenchMark hanno prodotto risultati molto positivi, sicuramente molto più positivi dei risultati che si possono ottenere utilizzando una virtualizzazione. I benchmark offrono risultati positivi anche nella compilazione in c rispetto ai risultati ottenuti utilizzando il classico Cygwin.

      E’ proprio questo nuovo WSL che rende il tutto più veloce di quanto fosse possibile con altre tecnologie, raggiungendo un risultato quasi eguale al nativo. (Ci sono alcune API che non sono propriamente a basso livello, e quindi producono risultati peggiori rispetto al nativo, ma comunque migliori delle altre tecnologie presenti ad oggi).
      😉

LASCIA UN COMMENTO