Compatibilità Windows Windows

Kernel Linux in Windows 10

Kernel Linux in Windows 10
Come funziona il nuovo sottosistema Windows per Linux (v2)??

Microsoft ha recentemente annunciato che presto lancerà un kernel Linux integrato direttamente in Windows 10. Ciò consentirà agli sviluppatori di sfruttare la piattaforma Windows 10 durante lo sviluppo di applicazioni per Linux. In effetti, questo è il passo successivo nell'evoluzione del sottosistema Windows per Linux (WSL). Rivediamo la versione 1 di WSL prima di addentrarci nell'intreccio dell'interazione del kernel Linux e cosa significa.

Se vuoi iniziare con WSL (v1), ecco una guida per questo.

1.  Versione WSL1

Il sottosistema Windows per Linux dovrebbe davvero essere chiamato sottosistema Linux per Windows. Offre un driver (un sottosistema) per il sistema operativo Windows, che traduce le chiamate di sistema Linux in chiamate di sistema Windows 10 native che il kernel NT comprende.

Questo crea un'illusione in qualche modo credibile per i binari Linux che, in effetti, stiano funzionando su un kernel Linux! Funziona abbastanza bene che non solo puoi eseguire semplici binari a 64 bit compilati per Linux, ma puoi eseguire un intero Userland (un.K.una distribuzione Linux come Debian o Ubuntu) oltre a WSL v1. Quindi, quando installi Ubuntu dal negozio Microsoft, recupera solo i binari dell'area utente di Ubuntu forniti da Canonical per l'ambiente WSL v1 di Microsoft.

Tuttavia, WSL v1 è ancora lontano dall'essere perfetto. Certe semantiche che un sistema Linux si aspetterebbe sono totalmente inaccettabili su Windows. Ad esempio, non puoi modificare il nome del file di un file aperto su Windows, ma puoi farlo su Linux.

Altri esempi ovvi includono le scarse prestazioni del filesystem di WSL v1 e la sua incapacità di eseguire Docker.

2.  WSL v2 il kernel Linux

Questa nuova versione di WSL risolve tutti questi problemi includendo il kernel Linux in esecuzione nell'hypervisor Hyper-V. Durante l'annuncio e le demo, Craig Loewen e il suo collega di Microsoft hanno sottolineato che, andando avanti, Microsoft investirà enormemente nella tecnologia di virtualizzazione.

L'uso di un kernel Linux risolve tutti i problemi semantici che non possono essere risolti utilizzando solo un livello di traduzione delle chiamate di sistema. Questo kernel Linux sarà molto leggero e verrà mantenuto da Microsoft con tutte le modifiche al kernel Linux rese open source. Nella loro demo, hanno mostrato come è possibile migrare le app WSL v1 esistenti per eseguirle senza modifiche in un ambiente WSL v2. Le prestazioni del file system sono migliorate di 3-4 volte e l'intero sistema sembra molto più reattivo.

3.  Come funziona?

Quindi, in pratica, abbiamo una macchina virtuale Linux con molte app dell'area utente, e.g, OpenSUSE o Debian  o Ubuntu userland. Ottieni più di una distribuzione sulla tua macchina Windows, con una singola VM Linux, quindi è pulito. Ma implica anche che ogni volta che apri il tuo terminale Ubuntu WSL, stai avviando una VM completa! Ci vorrà un po', vero??

In realtà, no. Il kernel Linux è in realtà abbastanza piccolo e leggero da consentire a Microsoft di ottenere tempi di avvio folli (~ 1 secondo). Hanno raggiunto questo obiettivo rimuovendo tutto il codice del bootloader e poiché si tratta di una VM, caricano direttamente il kernel Linux nel suo spazio di indirizzi nella memoria e impostano alcuni stati della VM che il kernel si aspetta. Questo è lo stesso meccanismo che alimenta un'altra nuova funzionalità di Windows 10 che è Windows Sandbox.

Ha un ingombro di memoria molto ridotto, si carica in un secondo e il formato di filesystem ext4 nativo gli consente di offrire un'esperienza utente molto fluida. La VM funziona solo quando ne hai bisogno.

Inoltre, non è completamente isolato come una VM tradizionale. Puoi interagire molto facilmente con il resto del sistema Windows, inclusi i file nelle unità di Windows utilizzando WSL v2. Non è una VM isolata ma una parte integrata di Windows 10. Come si ottiene questo??

4.  Viva il Piano 9

Con WSL v1, l'accesso a file e directory sui tuoi ospiti Windows era banale. La tua area utente Linux è solo un'app su Windows, quindi può leggere e scrivere file originariamente appartenenti al sistema operativo nativo abbastanza facilmente.

Con WSL v2, hai una VM in esecuzione con il suo disco rigido virtuale (formattato con ext4, ovviamente) e se vogliamo un'esperienza simile a quella di WSL v1, abbiamo bisogno di alcuni meccanismi extra. Inserisci il piano 9.

Plan 9, scritto anche come, 9P è un sistema operativo originariamente sviluppato presso i Bell Labs. Sebbene sia improbabile che lo troverai mai in esecuzione in produzione, è ancora vivo poiché vari altri sistemi operativi adottano idee interessanti che sono incubate in esso, incluso il protocollo 9P per un file server.

5.  File system

WSL v2 avrà un server di protocollo 9P in esecuzione sul tuo host Windows 10 e un client 9P in esecuzione all'interno delle tue app WSL. Ciò ti consente di accedere ai file di Windows 10 in modo nativo all'interno del tuo ambiente WSL. L'unità C: verrà montata in /mnt/c, proprio come WSL v1 e ogni file all'interno dell'host Windows 10 può essere raggiunto dall'ambiente WSL.

Sarà vero anche il contrario. Ci sarà un server di protocollo 9P in esecuzione nel tuo ambiente Linux con il suo client corrispondente sull'host Windows 10. Ciò consentirà agli utenti di accedere al proprio file system Linux (ext4) dall'ambiente Windows 10. Consentendoti di modificare il codice sorgente o i file di configurazione utilizzando il tuo IDE preferito installato su Windows, elencando tutte le directory utilizzando Esplora file di Windows 10 e molto altro. In sostanza, eseguirai le tue distribuzioni Linux preferite con l'interfaccia utente di Windows 10.

6.  Docker

Nel loro annuncio, Microsoft ha anche suggerito che questo nuovo ambiente verrà utilizzato anche da Docker per spedire le future app Docker per Windows. Dato che c'è un kernel Linux, eseguire Docker su di esso sarà abbastanza facile. Nella demo, hanno eseguito Docker su Ubuntu con WSL v2 e ha funzionato come se fosse in esecuzione su un'installazione nativa di Ubuntu.

Per fare un esempio molto superficiale, se hai lavorato con Dockerfiles su un sistema Windows, devi aver notato i problemi di sicurezza che sono causati dalla mancanza di autorizzazioni per i file Unix like. Non sarà più un problema. Docker su Windows utilizza già una VM personalizzata per fornire contenitori Linux, presumibilmente ora utilizzerà WSL v2 per utilizzare il kernel Linux fornito da Microsoft.

Conclusione

Nel complesso, sono molto impressionato da ciò che Microsoft sta facendo per fornire un rifugio agli sviluppatori Linux che desiderano utilizzare anche Windows. Si spera che, a lungo termine, incoraggerà molta impollinazione incrociata tra i due diversi ecosistemi.

Se stai utilizzando Windows 10 Home, Pro o Enterprise Edition puoi avere un assaggio di WSL v2 optando per le build di anteprima di Windows 10. Ecco una guida su come farlo.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...