Ciao, Habr!
Mentre la nostra è in pieno svolgimento, vorremmo offrirti l'opportunità di discutere uno dei temi più rilevanti su cui stiamo lavorando ultimamente: l'interazione tra Windows e Linux, legata, in particolare, allo sviluppo del sistema . WSL 2 è in arrivo e ti proponiamo una breve panoramica delle funzionalità che ci attendono in questo sottosistema, insieme alle previsioni di futura integrazione tra Windows e Linux.

A maggio di quest'anno, Microsoft ha annunciato che WSL2, l'ultima versione della sottosistema Windows per Linux, funzionerà su un kernel Linux completo, compilato internamente.
Così, Microsoft include per la prima volta in Windows un kernel Linux come uno dei suoi componenti. Inoltre, Microsoft introduce in Windows una nuova riga di comando, che amplificherà le capacità di PowerShell e WSL.
Sia il kernel Linux per WSL2, creato da Microsoft, sia la nuova riga di comando di Windows sono di particolare interesse per gli sviluppatori.
«È la mossa più forte nella partita contro AWS,» osserva Joshua Schwartz, direttore dei programmi di digitalizzazione della società di consulenza A.T. Kearney.
Il futuro di Microsoft non è legato al mercato dei PC, sebbene continuerà a mantenere una solida posizione in questo settore. È molto più importante affermarsi nel mercato del cloud, dove i PC desktop potrebbero diventare una delle componenti chiave in futuro.
Cosa fa WSL2
WSL2 è la nuova infrastruttura della sottosistema Windows per Linux. Essa permette di aumentare notevolmente le prestazioni del file system e garantisce piena compatibilità con le chiamate di sistema.
Una delle principali richieste della comunità WSL riguardava il miglioramento delle funzionalità. Su WSL2 funzionano molti più strumenti per Linux rispetto a WSL, inclusi Docker e FUSE.
WSL2 gestisce operazioni intensiva sui file, come git clone, npm install, apt update e apt upgrade. L'effettivo aumento della velocità dipende dall'applicazione specifica e da come interagisce con il file system.
I primi test hanno dimostrato che WSL2 è circa 20 volte più veloce di WSL1 nel decomprimere tar da zip. Utilizzando git clone, npm install e cmake in vari progetti, il sistema ha mostrato un aumento delle prestazioni di due-cinque volte.
Questo aiuterà a guadagnare la fiducia degli sviluppatori?
In sostanza, Microsoft mira a guadagnare riconoscimento e fiducia nella comunità degli sviluppatori, impegnandosi nella creazione di una propria versione del kernel Linux per supportare i processi WSL2, afferma Cody Swann, CEO di Gunner Technology.
«A parte lo sviluppo specificamente per Windows, la creazione di tutte le altre applicazioni – cloud, mobili, web – su PC è stata estremamente scomoda, costringendo lo sviluppatore a scaricare un distributore Linux in parallelo con il sistema operativo Windows. Microsoft ha riconosciuto questo problema e ha proposto una soluzione,» conclude.
È poco probabile che l'introduzione di un proprio kernel Linux abbia un impatto significativo sull'uso del sistema da parte dell'utente comune. Tuttavia, in tal caso, si aprono opportunità per una maggiore collaborazione tra i servizi Microsoft e il sistema operativo Linux.
Questa mossa da parte di Microsoft è davvero molto intelligente, in quanto contribuisce a penetrare più a fondo nella comunità degli sviluppatori e a utilizzare attivamente prodotti sviluppati da altri, ossia, a connettersi con l'open source, afferma Swann.
Benvenuto nel New Microsoft
La tendenza verso la creazione e il supporto di un kernel Linux "specificamente per Windows" riflette la decisa direzione verso l'open source promossa dal CEO Satya Nadella. Microsoft non è più quella di Gates e Ballmer, quando tutto era custodito dietro un recinto proprietario e nessuno pensava all'interoperabilità.
"Satya ha completamente trasformato Microsoft in una piattaforma molto più moderna, e questa strategia ha portato grandi risultati. Salve, capitalizzazione da trilioni di dollari," afferma Schwartz.
Secondo Charles King, principale analista di Pund-IT, i due principali punti di forza di Microsoft sono legati all'efficienza e alla sicurezza.
"Utilizzando attivamente le proprie risorse e strumenti, l'azienda può garantire ai clienti che il kernel sarà sempre aggiornato e dotato delle ultime patch e correzioni, assicurando completa sicurezza," aggiunge.
Anche gli sviluppatori ne traggono vantaggio.
I file binari di Linux eseguono molte funzioni attraverso chiamate di sistema, ad esempio accedono ai file, richiedono memoria e creano processi. WSL1 si basa su un livello di traduzione che interpreta molte di queste chiamate di sistema e consente loro di interagire con il kernel di Windows NT.
La parte più difficile è implementare tutte le chiamate di sistema. Poiché in WSL1 questo non è stato fatto, alcune applicazioni non potevano funzionare. Con WSL2 emerge un numero significativo di nuove applicazioni che funzionano correttamente in questo ambiente.
La nuova architettura consente a Microsoft di apportare le ultime ottimizzazioni al kernel di Linux molto più rapidamente rispetto a WSL1. Microsoft può aggiornare il kernel di WSL2 senza dover implementare nuovamente tutte le limitazioni.
Strumento completamente open source
Lo sviluppo di un proprio kernel Linux da parte di Microsoft è stato il culmine di anni di lavoro svolto dal Linux Systems Group e da molti altri team all'interno dell'intera Microsoft, come affermato da Jack Hammons, manager dei programmi nel Linux Systems Group di Microsoft.
Il kernel fornito per WSL2 sarà completamente open source, e Microsoft pubblicherà su GitHub le istruzioni su come compilarlo. L'azienda collaborerà con gli sviluppatori desiderosi di aiutare il progetto e incoraggerà i contributi open source.
Gli sviluppatori di Microsoft hanno creato WSL2 utilizzando sistemi di integrazione e distribuzione continua attivi all'interno dell'azienda. Questo software verrà mantenuto tramite il sistema di aggiornamenti di Windows e sarà completamente trasparente per gli utenti. Il kernel rimarrà aggiornato e includerà tutte le funzionalità dell'ultima branch stabile di Linux.
Per garantire l'accessibilità del codice sorgente, l'azienda crea mirror locali dei repository e monitora costantemente il contenuto della mailing list di Linux riguardo alle problematiche di sicurezza, collaborando anche con diverse aziende che supportano il lavoro con database in ambienti virtuali aziendali (CVE). In questo modo si garantisce che il kernel Linux di Microsoft tenga conto degli aggiornamenti più recenti e risolva tutte le minacce emergenti.
I contributi open source diventano obbligatori
Microsoft garantisce che tutte le modifiche al kernel verranno distribuite in modo ascendente: questo è un aspetto importante della filosofia di Linux. Il supporto per i patch discendenti comporta una complessità aggiuntiva; inoltre, tale pratica non è comunemente accettata nella comunità del software libero.
L'obiettivo di Microsoft, che utilizza attivamente Linux, è di diventare un membro disciplinato di questa comunità e di fornire le modifiche apportate alla comunità stessa. Per ottenere la stabilità dei rami associati al supporto a lungo termine, alcuni patch—ad esempio, quelli che introducono nuove funzionalità—potrebbero essere inclusi solo nelle nuove versioni del kernel, piuttosto che essere portati nella versione attuale di LTS in modalità retrocompatibile.
Quando saranno disponibili i sorgenti del kernel WSL, essi consisteranno in collegamenti a un insieme di patch e a una parte stabile di lungo termine dei sorgenti. Microsoft prevede che nel tempo questo elenco si ridurrà, man mano che i patch saranno diffusi in modo ascendente e nuove patch locali saranno aggiunte per supportare le recenti funzionalità di WSL.
Un design delle finestre più gradevole
Microsoft ha anche annunciato l'uscita della versione 'invernale' in arrivo di Windows Terminal: una nuova applicazione per gli utenti che lavorano con strumenti da riga di comando e shell, in particolare Command Prompt, PowerShell e WSL.

Windows Terminal
Windows Terminal 1.0 offre molte opzioni di personalizzazione e configurazione, dando un controllo più completo sull'aspetto della finestra del terminale, così come sulle shell/profili che devono aprirsi come nuove schede.
Le impostazioni saranno salvate in un file di testo strutturato, il che renderà facile configurare e personalizzare la finestra del terminale secondo le proprie preferenze.
Microsoft sta cessando lo sviluppo dell'attuale console di Windows e sta creando una nuova da zero, adottando così un approccio fresco. Windows Terminal si installa e funziona in parallelo con l'applicazione Windows Console esistente, fornita 'out of the box'.
Come funziona
Quando un utente di Windows 10 avvia direttamente Cmd/PowerShell/ecc., si attiva un processo collegato a un'istanza normale della Console. Il meccanismo di configurazione del nuovo terminale consente agli utenti di Windows di creare più profili per tutte le shell/applicazioni/strumenti desiderati, siano essi PowerShell, il prompt dei comandi, Ubuntu, o anche connessioni SSH con Azure o dispositivi IoT.
In questi profili possono essere previste combinazioni personalizzate di design e dimensione del carattere, temi colore, livelli di sfocatura o trasparenza dello sfondo. Inoltre, gli utenti potranno selezionare un nuovo font monospaziato per rendere la finestra del terminale più moderna e accattivante. Questo font includerà legature per la programmazione e sarà reso disponibile pubblicamente in un proprio repository.
I principali vantaggi del nuovo comando dell'interfaccia di Windows sono molteplici schede e testo accattivante. Il supporto per più schede era considerato la richiesta più desiderata per lo sviluppo del terminale. Il testo accattivante è possibile grazie a un motore di rendering basato su DirectWrite/DirectX, dotato di accelerazione GPU.
Il motore visualizza icone testuali, glifi e caratteri speciali disponibili nei font, inclusi ideogrammi cinesi, giapponesi e coreani (CJK), emoji, simboli powerline, icone e ligature per programmatori. Inoltre, questo motore rende il testo molto più rapidamente rispetto a GDI, precedentemente utilizzato nella console.
La retrocompatibilità è completamente garantita, anche se, se lo si desidera, è possibile provare Windows Terminal.
Cronologia: come si presenterà
Microsoft fornirà Windows Terminal tramite Microsoft Store in Windows 10 e lo aggiornerà regolarmente. In questo modo, gli utenti lavoreranno sempre con le versioni più recenti e gli ultimi aggiornamenti, praticamente senza sforzi.
Microsoft prevede di lanciare il nuovo terminale il prossimo inverno. Dopo il rilascio di Windows Terminal 1.0, gli sviluppatori continueranno a lavorare su molte funzionalità già posticipate nel backlog.
Il codice sorgente di Windows Terminal e Windows Console su GitHub.
Cosa ci aspetta in futuro?
La possibilità che Microsoft utilizzi un proprio core Linux anche per altri scopi, ad esempio per sviluppare la propria distribuzione Linux, oggi sembra piuttosto ipotetica.
Probabilmente, il risultato dipende da quanto Microsoft riesca a rilevare una domanda significativa per un prodotto del genere e quali opportunità commerciali potrebbero potenzialmente derivare da tali sviluppi, ritiene Charles King.
Pensa che, nel prossimo futuro, l'azienda si concentrerà principalmente sul garantire una sempre maggiore compatibilità tra Windows e Linux e sulla loro reciproca integrazione.
Joshua Schwartz ritiene che in questo caso sarà necessario valutare quali saranno gli investimenti richiesti per questo lavoro e quale sarà il ritorno. Se oggi Microsoft fosse un'azienda completamente nuova, probabilmente svilupperebbe tutto sulla base di Linux. Tuttavia, il porting di tutte le tecnologie già esistenti in Microsoft sulla nativa architettura Linux appare oggi un progetto costoso e complesso, che difficilmente darà buoni ritorni. Gli appassionati di Linux avranno il loro Linux, mentre l'architettura principale rimarrà intatta.
Quando Apple nel 2000 ha reinventato Mac OS, questo sistema operativo si basava su BSD Unix, che è più simile a Linux che a DOS. Oggi, invece, la nuova versione di Microsoft Windows è proprio costruita sulla base di Linux.
Forse si apre davanti a noi una nuova porta?
Il kernel Linux di Microsoft può aprire la strada a una più stretta interazione tra i servizi Windows e il sistema operativo Linux. In sostanza, queste iniziative di Microsoft dimostrano che all'interno dell'azienda si comprende ormai che oggi quasi non ci sono clienti che preferiscono vivere in un mondo dominato da Windows.
È molto più sensato utilizzare tecnologie e sistemi eterogenei che rispondano al meglio alle esigenze di business e alle specifiche situazioni pratiche.
Una domanda strategica più importante riguarda quali nuove opportunità strategiche questo movimento apre per la piattaforma Microsoft stessa?
Azure, l'ecosistema cloud di Microsoft, offre già un enorme supporto per Linux. In precedenza, Windows supportava bene Linux tramite macchine virtuali.
I cambiamenti fondamentali che avvengono oggi sono legati al fatto che ora i processi Linux verranno eseguiti nativamente sul kernel di Windows, il che significa che lavorare con Linux da Windows sarà molto più veloce rispetto alle macchine virtuali. È molto probabile che, di conseguenza, Azure si arricchisca di una nuova generazione di ingegneri che utilizzano Linux su scala industriale.
Fonte: habr.com
