Domande frequenti su Sottosistema Windows per Linux

Generale

Che cos'è Sottosistema di Windows per Linux?

Il sottosistema Windows per Linux (WSL) è una funzionalità del sistema operativo Windows che consente di eseguire un file system Linux, insieme agli strumenti da riga di comando e alle app GUI Linux, direttamente in Windows, insieme alle app desktop e alle app tradizionali Windows.

Per altri dettagli, vedi la pagina relativa alle informazioni sul prodotto.

A chi si rivolge Sottosistema Windows per Linux?

Questo è principalmente uno strumento per gli sviluppatori, in particolare gli sviluppatori Web, quelli che lavorano su progetti open source o la distribuzione in ambienti server Linux. WSL è per chiunque voglia usare Bash, strumenti Linux comuni (, awke così via) e framework Linux -first (sedRuby, Python e così via) ma si gode anche di usare strumenti di produttività Windows

Cosa posso fare con Sottosistema Windows per Linux?

WSL consente di eseguire Linux in una shell Bash con la propria scelta di distribuzione (Ubuntu, Debian, OpenSUSE, Kali, Alpine e così via). Con Bash puoi eseguire gli strumenti e le app da riga di comando di Linux. Digita ad esempio lsb_release -a e premi INVIO per visualizzare i dettagli della distribuzione Linux attualmente in esecuzione:

Screenshot of distro details

È anche possibile accedere al file system del computer locale dall'interno della shell Bash Linux. Le unità locali verranno montate nella /mnt cartella. Ad esempio, l'unità C: è montata in /mnt/c:

Screenshot of mounted C drive

È possibile descrivere un flusso di lavoro di sviluppo tipico che incorpora WSL?

WSL è destinato a un pubblico di sviluppatori per essere usato come parte di un ciclo di sviluppo interno. Si supponga che Sam stia creando una pipeline CI/CD (recapito continuo di integrazione & continua) e voglia testarla prima in un computer locale (portatile) prima di distribuirla nel cloud. Sam può abilitare WSL (& WSL 2 per migliorare la velocità e le prestazioni) e quindi usare un'istanza di Ubuntu Linux autentica in locale (sul portatile) con qualsiasi comando e strumenti Bash che preferiscono. Dopo aver verificato la pipeline di sviluppo localmente, può eseguire il push della pipeline CI/CD nel cloud (ad esempio, Azure) inserendola in un contenitore Docker ed eseguendo il push del contenitore in un'istanza cloud in cui viene eseguito in una macchina virtuale Ubuntu pronta per la produzione.

Informazioni su Bash

Bash è una shell di uso comune basata su testo e un linguaggio di comando. Si tratta della shell predefinita inclusa in Ubuntu e in altre distribuzioni Linux, nonché in macOS. Gli utenti digitano i comandi in una shell per eseguire script e/o comandi e strumenti per numerose attività.

Come funziona?

Vedere questo articolo nel blog della riga di comando di Windows: un'analisi approfondita su come WSL consente di accedere ai file Linux Windows che illustra in dettaglio la tecnologia sottostante.

Perché usare Sottosistema Windows per Linux anziché Linux in una macchina virtuale?

Sottosistema Windows per Linux richiede un minor numero di risorse (CPU, memoria e archiviazione) rispetto a una macchina virtuale completa. Ti consente anche di eseguire app e strumenti da riga di comando di Linux insieme alle app desktop, da riga di comando e dello store di Windows e di accedere ai file di Windows da Linux. In questo modo puoi usare le app di Windows e gli strumenti da riga di comando di Linux nello stesso set di file, se lo preferisci.

Perché usare ad esempio Ruby in Linux anziché in Windows?

Alcuni strumenti multipiattaforma sono stati creati supponendo che l'ambiente in cui vengono eseguiti si comportino come Linux. Alcuni strumenti ad esempio suppongono di essere in grado di accedere a percorsi di file molto lunghi o che esistano file/cartelle specifici. Questo causa frequentemente problemi in Windows, che si comporta spesso in modo diverso rispetto a Linux.

Molte lingue come Ruby e Node.js vengono spesso convertite in e vengono eseguite in modo ottimale, in Windows. Tuttavia, non tutti i proprietari delle librerie Ruby Gem o node/NPM convertono le librerie in modo da supportare Windows e molti presentano dipendenze specifiche da Linux. Per questo motivo, spesso in sistemi basati su tali strumenti e librerie si verificano errori di compilazione e di runtime o comportamenti indesiderati in Windows.

Questi sono solo alcuni dei problemi che hanno indotto molti utenti a chiedere a Microsoft di migliorare gli strumenti da riga di comando di Windows e che hanno portato alla collaborazione con Canonical per consentire l'esecuzione in Windows degli strumenti da riga di comando nativi Bash e Linux.

Che cosa significa questo per PowerShell?

Quando si usano progetti OSS, esistono numerosi scenari in cui è estremamente utile usare Bash da un prompt di PowerShell. Il supporto di Bash è complementare e potenzia il valore della riga di comando in Windows, consentendo a PowerShell e alla community di PowerShell di sfruttare altre tecnologie comuni.

Per altre informazioni, vedi il blog del team di PowerShell Bash for Windows: Why it’s awesome and what it means for PowerShell (Bash per Windows: perché è eccezionale e cosa significa per PowerShell).

Quali processori supporta Sottosistema Windows per Linux?

WSL supporta CPU x64 e Arm.

Come posso accedere all'unità C:?

I punti di montaggio per i dischi rigidi nel computer locale vengono creati automaticamente e consentono di accedere facilmente al file system di Windows.

/mnt/<drive letter>/

Usare ad esempio cd /mnt/c per accedere a c:\

Come posso configurare Git Credential Manager? (Come posso usare le autorizzazioni Git per Windows in WSL?)

Vedere l'esercitazione Attività iniziali usando Git in sottosistema Windows per Linux, che include una sezione relativa alla configurazione di Git Credential Manager e all'archiviazione dei token di autenticazione in Windows Credential Manager.

Come posso usare un file di Windows con un'app Linux?

Uno dei vantaggi di Sottosistema Windows per Linux è la possibilità di accedere ai file tramite app o strumenti di Windows e di Linux.

Sottosistema Windows per Linux monta le unità fisse del computer nella cartella /mnt/<drive> delle distribuzioni Linux. Ad esempio, l'unità C: è montata in /mnt/c/

Con le unità montate puoi modificare ad esempio il codice in C:\dev\myproj\ usando Visual Studio o VS Code e compilare/testare il codice in Linux accedendo agli stessi file tramite /mnt/c/dev/myproj.

Altre informazioni sono disponibili nell'articolo Utilizzo tra Windows e file system Linux.

I file nell'unità Linux sono diversi dall'unità di Windows montata?

  1. I file nella radice Linux (ad esempio /) sono controllati da WSL che si allinea al comportamento di Linux, incluso ma non limitato a:

    • File che contengono caratteri non validi per il nome file di Windows
    • Collegamenti simbolici creati per utenti non amministratori
    • Modifica degli attributi dei file tramite chmod e chown
    • Distinzione maiuscole/minuscole per file/cartelle
  2. I file nelle unità montate sono controllati da Windows e si comportano come indicato di seguito:

    • Fanno distinzione tra maiuscole e minuscole
    • Tutte le autorizzazioni sono impostate per riflettere in modo ottimale le autorizzazioni di Windows

Come posso disinstallare una distribuzione di Sottosistema Windows per Linux?

Per rimuovere una distribuzione da WSL ed eliminare tutti i dati associati alla distribuzione Linux, eseguire wsl --unregister <distroName> dove <distroName> è il nome della distribuzione Linux, che può essere visualizzato dall'elenco nel wsl -l comando.

È inoltre possibile disinstallare l'app di distribuzione Linux nel computer come qualsiasi altra applicazione di store.

Per altre informazioni sui comandi wsl, vedere l'articolo Comandi di base per WSL.

Come posso eseguire un server OpenSSH?

OpenSSH viene fornito con Windows come funzionalità facoltativa. Vedere la documentazione Installa OpenSSH. I privilegi di amministratore in Windows sono necessari per eseguire OpenSSH in WSL. Per eseguire un server OpenSSH, eseguire la distribuzione WSL (ie Ubuntu) o Terminale Windows come amministratore. Esistono diverse risorse che coprono scenari SSH con WSL. Vedere gli articoli di blog di Scott Hanselman: Come ssh in un computer Windows 10 da Linux OR Windows OR ovunque, come SSH in WSL2 in Windows 10 da un computer esterno, IL MODO SEMPLICE come SSH in Bash e WSL2 in Windows 10 da un computer esterno eCome usare Windows 10 's built-in OpenSSH to automaticamente SSH in un computer Linux remoto.

Come posso cambiare la lingua di visualizzazione di Sottosistema Windows per Linux?

Il programma di installazione di Sottosistema Windows per Linux tenterà di modificare automaticamente le impostazioni locali di Ubuntu in modo che corrispondano alle impostazioni locali dell'installazione di Windows. Se non vuoi ottenere questo risultato, puoi eseguire questo comando per modificare le impostazioni locali di Ubuntu al completamento dell'installazione. Sarà necessario riavviare la distribuzione WSL in modo che questa modifica venga applicata.

Nell'esempio seguente le impostazioni locali vengono cambiate in en-US:

sudo update-locale LANG=en_US.UTF8

Perché non ho accesso a Internet da Sottosistema Windows per Linux?

Alcuni utenti hanno segnalato problemi con applicazioni firewall specifiche che bloccano l'accesso a Internet in Sottosistema Windows per Linux. I firewall segnalati sono:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-Secure

In alcuni casi, la disabilitazione del firewall consente l'accesso. In altri casi sembra che il semplice fatto che il firewall sia installato blocchi l'accesso.

Come posso accedere a una porta da Sottosistema Windows per Linux in Windows?

La funzionalità Sottosistema Windows per Linux condivide l'indirizzo IP di Windows poiché viene eseguita in Windows. Di conseguenza, puoi accedere a tutte le porte in localhos. Se ad esempio disponi di contenuto Web sulla porta 1234, puoi digitare https://localhost:1234 nel browser Windows. Per altre informazioni, vedere Accesso alle applicazioni di rete.

Come è possibile eseguire il backup delle distribuzioni WSL o spostarle da un'unità a un'altra?

Il modo migliore per eseguire il backup o spostare le distribuzioni è tramite i comandi di esportazione/importazione disponibili in Windows versione 1809 e versioni successive. Puoi esportare l'intera distribuzione in un tarball usando il comando wsl --export. È quindi possibile importare nuovamente questa distribuzione in WSL usando il wsl --import comando, che può assegnare un nome a un nuovo percorso di unità per l'importazione, consentendo di eseguire il backup e salvare gli stati di (o spostare) le distribuzioni WSL.

Si noti che i servizi di backup tradizionali che esegue il backup dei file nelle cartelle AppData (ad esempio Windows Backup) non saranno danneggiati dai file Linux.

WSL 2

WSL 2 usa Hyper-V? Sarà disponibile in Windows 10 Home e Windows 11 Home?

WSL 2 è disponibile in tutti gli SKU desktop in cui È disponibile WSL, inclusi Windows 10 Home e Windows 11 Home.

La versione più recente di WSL usa l'architettura Hyper-V per abilitare la virtualizzazione. Questa architettura sarà disponibile nel componente facoltativo "Virtual Machine Platform". Questo componente facoltativo sarà disponibile in tutti gli SKU. Presto saranno disponibili altri dettagli su questa esperienza man mano che si avvicina il rilascio di WSL 2.

Che cosa accadrà a WSL 1? Verrà abbandonato?

Non sono attualmente previsti piani per deprecare WSL 1. Puoi eseguire le distribuzioni WSL 1 e WSL 2 side-by-side e puoi effettuare l'aggiornamento e il downgrade di qualsiasi distribuzione in qualsiasi momento. L'aggiunta di WSL 2 come nuova architettura presenta una piattaforma migliore per consentire al team WSL di offrire funzionalità che rendono WSL una soluzione straordinaria per eseguire un ambiente Linux in Windows.

Sarà possibile eseguire WSL 2 e altri strumenti di virtualizzazione di terze parti, ad esempio VMware o VirtualBox?

Alcune applicazioni di terze parti, come VMware e VirtualBox, non possono funzionare se è in uso Hyper-V e non possono quindi essere eseguite quando WSL 2 è abilitato. Di recente, tuttavia, sia per VirtualBox che per VMware sono state rilasciate versioni che supportano Hyper-V e WSL2. Altre informazioni sulle modifiche di VirtualBox e sulle modifiche di VMware. Per la risoluzione dei problemi, vedere le analisi dei problemi di VirtualBox nel repository WSL di GitHub.

Stiamo lavorando costantemente alle soluzioni per supportare l'integrazione di terze parti di Hyper-V. Abbiamo esposto, ad esempio, un set di API denominato piattaforma Hypervisor che può essere usato dai provider di virtualizzazione di terze parti per rendere il software compatibile con Hyper-V. In questo modo le applicazioni possono usare l'architettura Hyper-V per l'emulazione, ad esempio l'emulatore Android di Google e VirtualBox 6 e versioni successive, ora entrambi compatibili con Hyper-V.

Per altre informazioni sui problemi di WSL con VirtualBox 6.1, vedere il repository dei problemi di WSL 2.

*Se si sta cercando una macchina virtuale Windows, VMWare, Hyper-V, VirtualBox e i download delle macchine virtuali Parallels sono disponibili nel Windows Dev Center.

È possibile accedere alla GPU in WSL 2? Sono previsti piani per aumentare il supporto hardware?

È stato rilasciato il supporto per l'accesso alla GPU all'interno delle distribuzioni di WSL 2. In altre parole, è possibile ora usare WSL più facilmente per scenari di Machine Learning, intelligenza artificiale e data science quando sono coinvolti set di Big Data. Vedere l'esercitazione per iniziare a usare il supporto GPU. Per il momento WSL 2 non include il supporto per dispositivi seriali o USB. Si sta studiando qual è il modo migliore per aggiungere queste funzionalità. Tuttavia, il supporto USB è ora disponibile tramite il progetto USBIPD-WIN. Vedere Connessione dispositivi USB per la procedura per configurare il supporto dei dispositivi USB.

WSL 2 può usare applicazioni di rete?

Sì, in generale le applicazioni di rete funzionano meglio e saranno più veloci con WSL 2, poiché offre la compatibilità completa delle chiamate di sistema. Tuttavia, l'architettura WSL 2 usa componenti di rete virtualizzati, il che significa che WSL 2 si comporterà in modo analogo a una macchina virtuale: le distribuzioni WSL 2 avranno un indirizzo IP diverso rispetto al computer host (Windows sistema operativo). Per altre informazioni, vedere Accesso alle applicazioni di rete con WSL.

È possibile eseguire WSL 2 in una macchina virtuale?

Sì. Devi assicurarti che nella macchina virtuale sia abilitata la virtualizzazione annidata. Questa operazione può essere effettuata nell'host Hyper-V padre eseguendo in una finestra di PowerShell con privilegi di amministratore il comando seguente:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Sostituisci <VMName> con il nome della macchina virtuale.

Posso usare wsl.conf in WSL 2?

WSL 2 supporta lo stesso file wsl.conf usato da WSL 1. Ciò significa che in WSL 2 funzioneranno tutte le opzioni di configurazione impostate in una distribuzione di WSL 1, ad esempio il montaggio automatico di unità Windows, l'abilitazione o la disabilitazione dell'interoperabilità, il cambiamento della directory in cui verranno montate le unità Windows e così via. Altre informazioni sulle opzioni di configurazione in WSL sono disponibili nella pagina Gestione distribuzione . Altre informazioni sul supporto per il montaggio di unità, dischi, dispositivi o dischi rigidi virtuali (VHD) nell'articolo Montare un disco Linux in WSL 2 .

Dove posso inviare il feedback?

I problemi del repository del prodotto WSL consentono di:

  • Cercare i problemi esistenti per verificare se sono presenti problemi associati a un problema riscontrato. Si noti che nella barra di ricerca è possibile rimuovere "is:open" per includere i problemi già risolti nella ricerca. Prendere in considerazione la possibilità di commentare o dare un pollice fino a eventuali problemi aperti che si desidera esprimere il proprio interesse per andare avanti come priorità.
  • Inviare un nuovo problema. Se è stato rilevato un problema con WSL e non è presente un problema esistente, è possibile selezionare il pulsante verde Nuovo problema e quindi scegliere WSL - Report bug. È necessario includere un titolo per il problema, il numero di build Windows (eseguire cmd.exe /c ver per visualizzare la build corrente#), indipendentemente dal fatto che si esegua WSL 1 o 2, la versione corrente del kernel Linux # (esegui wsl.exe --status o cat /proc/version), la versione # della distribuzione (esecuzionelsb_release -r), qualsiasi altra versione del software coinvolta, i passaggi di riproduzione, il comportamento previsto, il comportamento effettivo e i log di diagnostica, se disponibili e appropriati. Per altre info, vedi Contribuire a WSL.
  • Inviare una richiesta di funzionalità selezionando il pulsante Verde Nuovo problema e quindi selezionare Richiesta di funzionalità. È necessario affrontare alcune domande che descrivono la richiesta.

È anche possibile:

Per essere sempre aggiornato sulle ultime novità di WSL, puoi visitare: