WSL2 esegue Linux in una macchina virtuale o insieme al kernel di Windows?


16

Ho sempre desiderato un terminale Linux in Windows ed è stato realizzato da WSL 1. Ma è stato dolorosamente lento perché era (immagino) una macchina virtuale gestita da Hyper-V. Con WSL 2, è relativamente più veloce relativamente, ma non riesco a capire come Microsoft lo abbia fatto.

Hanno migliorato Hyper-V o hanno smesso di usare una macchina virtuale e hanno creato un po 'di magia per eseguire il kernel Linux in parallelo?


3
È ancora virtuale, ma WSL2 usa un kernel linux (4.9) invece di cambiare le chiamate alle API di Windows e gestirle in quel modo.
Guiverc

9
@Sachin WSL 1 esegue i binari ELF su Windows traducendo le chiamate di sistema Linux in chiamate di sistema Windows, il che rende esattamente quello che il suo nome descrive, "Sottosistema Windows per Linux"
wjandrea

6
WSL 1 non era virtuale @guiverc
Adrian il

3
@ Sachin.Verma: cosa intendi con "bufala"? WSL 1 era un'implementazione dell'API del kernel Linux e dell'ABI, proprio come il kernel Linux è un'implementazione dell'API del kernel Linux e dell'ABI. In effetti, è così che funzionano la maggior parte dei livelli di compatibilità di Linux, ad esempio quelli su FreeBSD, HP-UX, AIX, Solaris, ecc. Sono per lo più implementazioni indipendenti dell'ABI e dell'API del kernel Linux anziché delle porte del kernel Linux. Funziona anche al contrario: tutti i livelli di compatibilità per Unices su Linux commerciali erano implementazioni indipendenti delle loro API e ABI.
Jörg W Mittag,

4
Anche WinE funziona allo stesso modo. Implementa l'API e l'ABI di Windows, anziché eseguire il porting di Windows per l'esecuzione su Linux (che non sarebbe legalmente possibile).
Jörg W Mittag,

Risposte:


17

Dall'articolo Informazioni su WSL 2 di Microsoft Docs:

Breve panoramica dell'architettura WSL 2

WSL 2 utilizza la più recente e grande tecnologia di virtualizzazione per eseguire il suo kernel Linux all'interno di una macchina virtuale di utilità leggera (VM). Tuttavia, WSL 2 NON sarà un'esperienza VM tradizionale. Un'esperienza VM tradizionale può essere lenta all'avvio, isolata, consuma molte risorse e richiede tempo per gestirla. WSL 2 non ha questi attributi. Fornirà comunque i notevoli vantaggi di WSL 1: elevati livelli di integrazione tra Windows e Linux, tempi di avvio estremamente rapidi, ingombro ridotto delle risorse e soprattutto non richiede configurazione o gestione della VM. Mentre WSL 2 utilizza una macchina virtuale, verrà gestita ed eseguita dietro le quinte lasciando la stessa esperienza utente di WSL 1.

Come possiamo vedere nei seguenti articoli (e discussioni sottostanti) WLS 2 utilizza la funzionalità Hyper-V:


Da quello che ho letto finora: sarà isolato, consumerà risorse aggiuntive, avrà un disco virtuale dedicato.
LatinSuD
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.