Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Altre informazioni sulle diverse versioni di WSL, tra cui il motivo per cui WSL 2 è ora l'impostazione predefinita e gli scenari o le eccezioni specifici che possono giustificare il passaggio della distribuzione Linux installata all'architettura WSL 1 precedente.
Confronto tra WSL 1 e WSL 2
Questa guida confronterà WSL 1 e WSL 2, incluse le eccezioni per l'uso di WSL 1 anziché WSL 2. Le principali differenze tra WSL 1 e WSL 2 sono l'uso di un kernel Linux effettivo all'interno di una macchina virtuale gestita, il supporto per la compatibilità completa delle chiamate di sistema e le prestazioni nei sistemi operativi Linux e Windows. WSL 2 è la versione predefinita corrente durante l'installazione di una distribuzione Linux e usa la tecnologia di virtualizzazione più recente e più grande per eseguire un kernel Linux all'interno di una macchina virtuale (VM) di utilità leggera. WSL2 esegue distribuzioni Linux come contenitori isolati all'interno della macchina virtuale gestita. Se la tua distribuzione esegue attualmente WSL 1 e vuoi aggiornare a WSL 2, vedere aggiornamento da WSL 1 a WSL 2.
Confronto delle funzionalità
Caratteristica | WSL 1 | WSL 2 |
---|---|---|
Integrazione tra Windows e Linux | ✅ | ✅ |
Tempi di avvio rapido | ✅ | ✅ |
Ridotto consumo di risorse rispetto alle macchine virtuali tradizionali | ✅ | ✅ |
Viene eseguito con le versioni correnti di VMware e VirtualBox | ✅ | ❌ |
Macchina virtuale gestita | ❌ | ✅ |
Kernel Linux completo | ❌ | ✅ |
Compatibilità completa delle chiamate di sistema | ❌ | ✅ |
Prestazioni nei file system del sistema operativo | ✅ | ❌ |
supporto systemd | ❌ | ✅ |
Supporto IPv6 | ✅ | ✅ |
Come si può indicare dalla tabella di confronto precedente, l'architettura WSL 2 supera WSL 1 in diversi modi, ad eccezione delle prestazioni nei file system del sistema operativo, che possono essere risolti archiviando i file di progetto nello stesso sistema operativo degli strumenti in esecuzione per lavorare sul progetto.
WSL 2 è disponibile solo in Windows 11 o Windows 10, versione 1903, Build 18362 o successiva. Controllare la versione di Windows selezionando il tasto logo windows + R, digitare winver, selezionare OK. In alternativa, immettere il comando ver
nel prompt dei comandi di Windows. Potrebbe essere necessario eseguire l'aggiornamento alla versione più recente di Windows. Per le build inferiori a 14393, WSL non è supportato affatto.
Per altre info sugli aggiornamenti più recenti di WSL 2, vedi il blog riga di comando di Windows, incluso Supporto systemd è ora disponibile in WSL e aggiornamento di WSL settembre 2023 per altre informazioni sul supporto IPv6.
Nota
WSL 2 funzionerà con VMware 15.5.5+ e anche se VirtualBox 6+ indica che esiste il supporto WSL, esistono ancora sfide significative che lo rendono non supportato. Per ulteriori informazioni, vedere le nostre FAQ .
Novità di WSL 2
WSL 2 è una revisione importante dell'architettura sottostante e usa la tecnologia di virtualizzazione e un kernel Linux per abilitare nuove funzionalità. Gli obiettivi principali di questo aggiornamento sono aumentare le prestazioni del file system e aggiungere la compatibilità completa delle chiamate di sistema.
- requisiti di sistema per WSL 2
- Impostare la versione di distribuzione Linux da WSL 1 a WSL 2
- domande frequenti su WSL 2
Architettura di WSL 2
Un'esperienza di macchina virtuale tradizionale può essere lenta per l'avvio, è isolata, consuma molte risorse e richiede il tempo necessario per gestirla. WSL 2 non dispone di questi attributi.
WSL 2 offre i vantaggi di WSL 1, inclusa l'integrazione senza interruzioni tra Windows e Linux, tempi di avvio rapido, footprint ridotto delle risorse e non richiede alcuna configurazione o gestione delle macchine virtuali. Mentre WSL 2 usa una macchina virtuale, viene gestita ed eseguita in background, lasciando l'utente con la stessa esperienza utente di WSL 1.
Kernel Linux completo
Il kernel Linux in WSL 2 è compilato da Microsoft dal ramo stabile più recente, in base all'origine disponibile in kernel.org. Questo kernel è stato ottimizzato appositamente per WSL 2, ottimizzando le dimensioni e le prestazioni per offrire un'esperienza linux straordinaria in Windows. Il kernel verrà gestito dagli aggiornamenti di Windows, il che significa che si otterranno le correzioni di sicurezza e i miglioramenti del kernel più recenti senza dover gestirlo manualmente.
Il kernel Linux WSL 2 è open source. Per altre informazioni, vedere il post di blog Spedizione di un kernel Linux con Windows scritto dal team che lo ha creato.
Scopri di più nelle note di rilascio di per il sottosistema Windows per Linux kernel.
Miglioramento delle prestazioni di I/O dei file
Le operazioni a elevato utilizzo di file come git clone
, npm install
, apt update
, apt upgrade
e altro ancora sono molto più veloci con WSL 2.
L'aumento effettivo della velocità dipenderà dall'app in esecuzione e dalla modalità di interazione con il file system. Le versioni iniziali di WSL 2 funzionano fino a 20 volte più velocemente rispetto a WSL 1 quando si decomprime un tarball e circa 2-5 volte più velocemente quando si usano git clone
, npm install
e cmake
in vari progetti.
Compatibilità completa delle chiamate di sistema
I file binari Linux usano chiamate di sistema per eseguire funzioni come l'accesso ai file, la richiesta di memoria, la creazione di processi e altro ancora. Mentre WSL 1 ha usato un livello di conversione creato dal team WSL, WSL 2 include il proprio kernel Linux con compatibilità completa delle chiamate di sistema. I vantaggi includono:
Un nuovo set di app che è possibile eseguire all'interno di WSL, ad esempio Docker e altro ancora.
Tutti gli aggiornamenti al kernel Linux sono immediatamente pronti per l'uso (non è necessario attendere che il team WSL implementi gli aggiornamenti e aggiungere le modifiche).
Eccezioni per l'uso di WSL 1 anziché WSL 2
Consigliamo di usare WSL 2 poiché offre prestazioni più veloci e compatibilità con le chiamate di sistema 100%. Esistono tuttavia alcuni scenari specifici in cui è preferibile usare WSL 1. Prendere in considerazione l'uso di WSL 1 se:
- I file di progetto devono essere archiviati nel file system di Windows. WSL 1 offre un accesso più rapido ai file montati da Windows.
- Se si usa la distribuzione WSL Linux per accedere ai file di progetto nel file system Windows e questi file non possono essere archiviati nel file system Linux, si otterranno prestazioni più veloci nei file system del sistema operativo usando WSL 1.
- Progetto che richiede la compilazione incrociata usando sia gli strumenti Windows che Linux negli stessi file.
- Le prestazioni dei file nei sistemi operativi Windows e Linux sono più veloci in WSL 1 rispetto a WSL 2, quindi se si usano applicazioni Windows per accedere ai file Linux, si otterranno attualmente prestazioni più veloci con WSL 1.
- Il progetto deve accedere a una porta seriale o a un dispositivo USB.
Tuttavia, il supporto dei dispositivi USB è ora disponibile per WSL 2 tramite il progetto di
USBIPD-WIN
. Per la procedura di configurazione, vedere Connettere dispositivi USB. - WSL 2 non include il supporto per l'accesso alle porte seriali. Per altre informazioni, vedere le domande frequenti o in problema del repository GitHub WSL sul supporto seriale.
- Sono previsti requisiti di memoria rigorosi
- L'utilizzo della memoria di WSL 2 aumenta e si riduce man mano che viene usato. Quando un processo libera memoria, viene restituita automaticamente a Windows. Tuttavia, attualmente, WSL 2 non rilascia ancora le pagine nella cache a Windows fino a quando l'istanza WSL non viene arrestata. Se si hanno sessioni WSL a esecuzione prolungata o si accede a una quantità molto elevata di file, questa cache può richiedere memoria in Windows. Stiamo monitorando il lavoro per migliorare questa esperienza sul problema 4166 del repository GitHub WSL.
- Per coloro che usano VirtualBox, assicurarsi di usare la versione più recente di VirtualBox e WSL 2. Vedere le domande frequenti correlate .
- Se si usa una distribuzione Linux per avere un indirizzo IP nella stessa rete del computer host, potrebbe essere necessario configurare una soluzione alternativa per eseguire WSL 2. WSL 2 è in esecuzione come macchina virtuale Hyper-V. Si tratta di una modifica rispetto alla scheda di rete bridge usata in WSL 1, vale a dire che WSL 2 usa un servizio NAT (Network Address Translation) per la rete virtuale, invece di renderlo collegato alla scheda di interfaccia di rete (NIC) host, generando un indirizzo IP univoco che cambierà al riavvio. Per ulteriori informazioni sulla segnalazione e sul workaround che inoltra le porte TCP dei servizi WSL 2 al sistema operativo host, consultare la segnalazione nel repository GitHub WSL 4150, la modalità bridge del NIC (workaround TCP).
Nota
Provare a usare VS Code Remote WSL Extension per consentire di archiviare i file di progetto nel file system Linux, usando gli strumenti da riga di comando di Linux, ma anche di usare VS Code in Windows per creare, modificare, eseguire il debug o eseguire il progetto in un browser Internet senza alcun rallentamento delle prestazioni associato all'uso nei file system Linux e Windows. Altre informazioni.
WSL nel Microsoft Store
WSL ha rimosso la funzionalità di aggiornamento dall'immagine del sistema operativo Windows in un pacchetto disponibile tramite Microsoft Store. Ciò significa aggiornamenti e manutenzione più rapidi non appena sono disponibili; anziché dover attendere un aggiornamento del sistema operativo Windows.
WSL è stato originariamente incluso nel sistema operativo Windows come componente facoltativo che deve essere abilitato per installare una distribuzione Linux. WSL nello Store ha la stessa esperienza utente ed è lo stesso prodotto, ma riceve aggiornamenti e manutenzione come pacchetto dello Store, anziché come intero aggiornamento del sistema operativo. A partire da Windows versione 19044 o successiva, l'esecuzione del comando wsl.exe --install
installerà l'aggiornamento di manutenzione WSL da Microsoft Store. (Vedere il post di blog che annuncia questo aggiornamento). Se si usa già WSL, è possibile eseguire l'aggiornamento per assicurarsi di ricevere le caratteristiche e la manutenzione WSL più recenti dal store eseguendo wsl.exe --update
.
Nota
Se Microsoft Store non è accessibile all'interno dell'organizzazione, puoi comunque usare questa versione WSL aggiungendo --web-download
al comando --update
, ad esempio wsl --update --web-download
. È necessario aggiornare manualmente WSL ogni volta che una nuova versione diventa disponibile usando questo metodo.
Windows Subsystem for Linux