Pinguino alla finestra: sulle potenzialità e le prospettive del WSL2

Ehi Habr!

Mentre siamo ancora in piena attività saldi estivi, vorremmo invitarvi a discutere uno dei temi più importanti su cui abbiamo lavorato ultimamente: l'interazione tra Windows e Linux, relativa, in particolare, allo sviluppo del sistema WSL. WSL 2 è in arrivo ed ecco una rapida panoramica di ciò che accadrà in questo sottosistema, nonché una previsione per la futura integrazione tra Windows e Linux.

Pinguino alla finestra: sulle potenzialità e le prospettive del WSL2

Nel maggio di quest'anno, Microsoft ha annunciato che WSL2, l'ultima versione del sottosistema Windows su Linux, funzionerebbe su un kernel Linux completo costruito internamente.
Ciò segna la prima volta che Microsoft include il kernel Linux come componente in Windows. Microsoft sta inoltre introducendo una riga di comando in Windows che amplierà le funzionalità di PowerShell e WSL.

Sia il kernel Linux per WSL2, creato da Microsoft, sia la nuova riga di comando di Windows interessano soprattutto gli sviluppatori.

"Questa è la mossa più forte nella partita contro AWS", afferma Joshua Schwartz, direttore dei programmi di digitalizzazione presso la società di consulenza AT Kearney.

Il futuro di Microsoft non è legato al mercato dei PC, anche se continuerà a mantenere saldamente la sua posizione in questo segmento. Molto più importante sarà prendere piede nel mercato del cloud, uno dei cui componenti in futuro potrebbero essere i PC desktop.

Cosa fa WSL2?

WSL2 è l'ultimo framework del sottosistema Windows per Linux. Ti consente di migliorare radicalmente le prestazioni del file system e fornisce la piena compatibilità con le chiamate di sistema.

Una delle richieste principali della comunità WSL riguardava il miglioramento della funzionalità. WSL2 esegue molti più strumenti Linux rispetto a WSL, in particolare Docker e FUSE.
WSL2 gestisce operazioni ad uso intensivo di file, in particolare git clone, npm install, apt update e apt upgrade. L'aumento effettivo 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 nello spacchettare tar da zip. Utilizzando git clone, npm install e cmake in vari progetti, il sistema ha mostrato un aumento delle prestazioni da due a cinque volte.

Questo aiuterà a guadagnare la fiducia degli sviluppatori?

In sostanza, Microsoft sta cercando di ottenere riconoscimento e fiducia nella comunità degli sviluppatori sviluppando la propria versione del kernel Linux per supportare i processi WSL2, ha affermato Cody Swann, CEO di Gunner Technology.

"Oltre a sviluppare esclusivamente per Windows, creare tutte le altre applicazioni - cloud, dispositivi mobili, applicazioni web - su un PC era estremamente scomodo, motivo per cui lo sviluppatore in qualche modo ha dovuto avviare una distribuzione Linux parallelamente al sistema operativo Windows. Microsoft se ne è accorta e ha trovato una soluzione”, conclude.

È improbabile che l'introduzione di un kernel Linux personalizzato abbia un impatto serio sul sistema dal punto di vista dell'utente medio. Ciò apre tuttavia la possibilità di una più stretta interazione tra i servizi Microsoft e il sistema operativo Linux.
Questa mossa da parte di Microsoft è davvero molto intelligente, poiché aiuta a penetrare più profondamente nella comunità degli sviluppatori, nonché a utilizzare attivamente i prodotti che qualcun altro sta sviluppando, ovvero a connettersi all'open source, afferma Swann.

Benvenuti nella nuova Microsoft

La tendenza verso la creazione e il mantenimento di un kernel Linux “specificamente per Windows” riflette la forte direzione open source promossa dal CEO Satya Nadella. Microsoft non è più la stessa di Gates e Ballmer, quando tutto era tenuto dietro un recinto proprietario e nessuno pensava all’interoperabilità.

“Satya ha completamente trasformato Microsoft in una piattaforma molto più moderna e questa strategia ha dato i suoi frutti. Ciao, capitalizzazione da trilioni di dollari”, dice Schwartz.

Secondo Charles King, principale analista di Pund-IT, i due principali punti di forza di Microsoft sono l'efficienza e la sicurezza.

"Utilizzando attivamente i propri sviluppi seri - risorse e strumenti - l'azienda può garantire ai clienti che il kernel sarà completamente aggiornato e dotato delle ultime patch e correzioni per garantire la completa sicurezza", aggiunge.

Anche gli sviluppatori ne traggono vantaggio

I binari Linux eseguono molte funzioni utilizzando le chiamate di sistema, come l'accesso ai file, la richiesta di memoria e la creazione di processi. WSL1 si basa su un livello di traduzione per interpretare molte di queste chiamate di sistema e consentire loro di interagire con il kernel di Windows NT.

La cosa più difficile è implementare tutte le chiamate di sistema. Poiché ciò non è stato fatto in WSL1, alcune applicazioni non potevano funzionare lì. WSL2 introduce molte nuove applicazioni che funzionano bene in questo ambiente.

La nuova architettura consente a Microsoft di portare le ultime ottimizzazioni nel kernel Linux molto più velocemente rispetto a WSL1. Microsoft può aggiornare il core WSL2 anziché reimplementare tutte le restrizioni.

Strumento completamente open source

Lo sviluppo del proprio kernel Linux da parte di Microsoft è stato il culmine di anni di lavoro da parte del Linux Systems Group, così come di molti altri team di Microsoft, ha affermato Jack Hammons, program manager del Linux Systems Group, Microsoft.

Il kernel fornito per WSL2 sarà completamente open source e Microsoft pubblicherà le istruzioni su come creare tale kernel su GitHub. L’azienda collaborerà con gli sviluppatori disposti ad aiutare il progetto e a guidare il cambiamento dal basso verso l’alto.

Gli sviluppatori Microsoft hanno creato WSL2 utilizzando i sistemi di integrazione continua e di distribuzione continua dell'azienda. Questo software verrà servito tramite il sistema di aggiornamento di Windows e sarà completamente trasparente per l'utente. Il kernel rimarrà aggiornato e includerà tutte le funzionalità dell'ultimo ramo stabile di Linux.

Per garantire la disponibilità delle fonti, l'azienda esegue il mirroring dei repository localmente, monitora costantemente il contenuto della mailing list di sicurezza Linux e collabora con diverse aziende che supportano database in ambienti virtuali aziendali (CVE). Ciò garantisce che il kernel Linux di Microsoft sia aggiornato con gli ultimi aggiornamenti ed elimina qualsiasi minaccia emergente.

I cambiamenti dal basso verso l’alto diventano obbligatori

Microsoft garantisce che tutte le modifiche al kernel vengano propagate a monte, un aspetto importante della filosofia Linux. Il supporto delle patch downstream comporta ulteriore complessità; Inoltre, questa pratica non è comune nella comunità open source.

L'obiettivo di Microsoft come utente Linux attivo è quello di essere un membro disciplinato della comunità e di apportare cambiamenti alla comunità. Per garantire la stabilità dei rami associati al supporto a lungo termine, alcune patch, ad esempio quelle contenenti nuove funzionalità, potrebbero essere incluse solo nelle nuove versioni del kernel e non trasferite all'attuale versione LTS in modalità di compatibilità con le versioni precedenti.

Quando i sorgenti principali di WSL saranno disponibili, saranno costituiti da collegamenti a una serie di patch e a una parte stabile dei sorgenti a lunga esecuzione. Microsoft prevede che questo elenco si riduca nel tempo man mano che le patch vengono distribuite a monte e vengono aggiunte nuove patch locali per supportare le nuove funzionalità WSL.

Design della finestra più piacevole

Microsoft ha anche annunciato la prossima versione invernale di Windows Terminal, una nuova app per gli utenti che lavorano con strumenti e shell da riga di comando, come Prompt dei comandi, PowerShell e WSL.

Pinguino alla finestra: sulle potenzialità e le prospettive del WSL2

Terminale di Windows

Windows Terminal 1.0 offre molte impostazioni e opzioni di configurazione che ti danno un maggiore controllo sull'aspetto della finestra del terminale, nonché sulle shell/profili che dovrebbero aprirsi come nuove schede.

Le impostazioni verranno salvate in un file di testo strutturato, facilitando la configurazione e la progettazione della finestra del terminale secondo i tuoi gusti.

Microsoft non sta più perfezionando la console Windows esistente e ne sta creando una nuova da zero, decidendo di adottare un approccio nuovo. Terminale Windows si installa e viene eseguito in parallelo con l'applicazione Console Windows esistente pronta all'uso.

Come funziona

Quando un utente Windows 10 avvia direttamente Cmd/PowerShell/etc, viene attivato il processo collegato alla normale istanza della Console. Il motore di configurazione del nuovo terminale consente agli utenti Windows di creare più profili per tutte le shell/applicazioni/strumenti desiderati, sia in PowerShell, Prompt dei comandi, Ubuntu o anche connessioni SSH ad Azure o dispositivi IoT.

Questi profili possono fornire le proprie combinazioni di design e dimensione del carattere, temi di colore, livelli di sfocatura dello sfondo o trasparenza. Inoltre, gli utenti potranno scegliere un nuovo carattere a spaziatura fissa per rendere la finestra del terminale più moderna e interessante. Questo carattere contiene legature del programmatore; sarà reso disponibile al pubblico e archiviato nel proprio repository.

I principali vantaggi della nuova interfaccia di comando di Windows sono le numerose schede e il bel testo. Il supporto per più schede è stata considerata la richiesta più richiesta per lo sviluppo del terminale. I testi più belli si ottengono grazie al motore di rendering basato su DirectWrite/DirectX, dotato di accelerazione GPU.

Il motore visualizza icone di testo, glifi e caratteri speciali presenti nei caratteri, inclusi ideogrammi cinesi, giapponesi e coreani (CJK), emoji, simboli powerline, icone e legature di programmazione. Inoltre, questo motore esegue il rendering del testo molto più velocemente del GDI precedentemente utilizzato nella console.

La compatibilità con le versioni precedenti rimane in pieno ordine, anche se puoi provare Windows Terminal se lo desideri.

Cronologia: come accadrà

Microsoft fornirà Windows Terminal tramite Microsoft Store in Windows 10 e lo aggiornerà regolarmente. In questo modo, gli utenti saranno sempre aggiornati con le ultime versioni e gli ultimi miglioramenti, praticamente senza alcuno sforzo aggiuntivo.

Microsoft prevede di lanciare un nuovo terminale il prossimo inverno. Una volta che Microsoft avrà lanciato Windows Terminal 1.0, gli sviluppatori continueranno a lavorare su molte delle funzionalità già arretrate.

Codice sorgente del terminale Windows e della console Windows già pubblicato su GitHub.

Cosa può aspettarci in futuro?

La possibilità che Microsoft utilizzi il proprio kernel Linux per altri scopi, ad esempio per sviluppare la propria distribuzione Linux, sembra oggi alquanto ipotetica.

Il risultato dipende probabilmente dalla capacità di Microsoft di trovare una domanda significativa per un prodotto del genere e dalle opportunità commerciali che tali sviluppi potrebbero potenzialmente aprire, afferma Charles King.

Ritiene che l'obiettivo dell'azienda per il prossimo futuro sarà quello di rendere Windows e Linux sempre più compatibili e complementari tra loro.

Joshua Schwartz ritiene che in questo caso bisognerà valutare quale sarà l'investimento in quest'opera e quale sarà il ritorno su di essa. Se Microsoft fosse oggi un’azienda molto giovane, probabilmente farebbe tutto basandosi su Linux. Tuttavia, il porting di tutti gli sviluppi già disponibili da Microsoft sull'architettura nativa di Linux sembra oggi un progetto costoso e complesso che difficilmente ripagherà bene. Gli amanti di Linux avranno il proprio Linux e l'architettura principale rimarrà intatta.

Quando Apple reinventò Mac OS nel 2000, il sistema operativo era basato su BSD Unix, che è più simile a Linux che a DOS. Oggi viene creata una nuova versione di Microsoft Windows basata su Linux.

Forse si apre per noi una nuova porta?

Il kernel Linux di Microsoft potrebbe aprire la strada a una maggiore interoperabilità tra i servizi Windows e il sistema operativo Linux. In sostanza, questi sviluppi di Microsoft indicano che la stessa Microsoft ha già capito: oggi non ci sono quasi più clienti che preferiscono esistere in un mondo in cui tutto è Windows.

Ha molto più senso utilizzare tecnologie e sistemi eterogenei che meglio soddisfano i requisiti aziendali e le specifiche situazioni pratiche.

La domanda strategica più ampia è: quali nuove opportunità strategiche apre questa mossa per la stessa piattaforma Microsoft?

Azure, l'ecosistema cloud di Microsoft, fornisce già un eccezionale supporto per Linux. In precedenza, Windows supportava bene Linux utilizzando le macchine virtuali.

I cambiamenti fondamentali in atto oggi sono dovuti al fatto che ora i processi Linux verranno eseguiti in modo nativo sul kernel di Windows, il che significa che lavorare con Linux da Windows sarà molto più veloce che sulle macchine virtuali. È probabile che di conseguenza Azure si arricchirà di un intero strato di ingegneri che utilizzano Linux su scala industriale.

Fonte: habr.com

Aggiungi un commento