Vergleich der Subsysteme WSL 1 und WSL 2. Sollten Sie wechseln?





In diesem Beitrag möchte der Autor im Stil des "lauten Denkens" die WSL der ersten und zweiten Version vergleichen, da es Erfahrungen mit der Kommunikation gibt.



WSL 1 gegen WSL 2, was mich glücklich gemacht hat



Bild


MSDN- Quelle



1. Verwenden eines echten Linux-Kernels



Die Aufnahme eines echten Linux-Kernels hat die Dateisystem-E / A und die Systemaufrufe erhöht. 

Ein speziell optimierter Linux-Kernel lässt WSL 2 schneller als WSL 1 erscheinen. 

Bei einigen Aufgaben war WSL 2 laut Microsoft-Messungen , z. B. beim Entpacken von Archiven, 20-mal schneller als WSL 1 und bei Verwendung etwa 5-mal schneller Git-Klon und npm installieren. Hier und hier

können Sie Ihre Zeit mit Benchmarks verbringen .



2. Native Docker-Unterstützung.



Im Prinzip erschien eine solche Gelegenheit nur mit WSL 2.



Die Freude endete dort.



WSL 1 gegen WSL 2, was nicht gefiel



Beginnen wir mit den neuesten Krücken von Microsoft und der Art von Innovation, die mich persönlich verärgert hat.

Die erste Version von WSL verwendete weder einen echten Linux-Kernel noch eine Virtualisierung. WSL war ein bisschen wie Wine, aber nicht ganz.



Dort wurde eine spezielle Ebene verwendet, um Aufrufe von Linux-Programmen in diese Shell zu übersetzen.

Dies verlangsamte natürlich alles, hatte aber auch Vorteile.



Beispielsweise waren alle Programme, die auf WSL 1 ausgeführt wurden, im Task-Manager sichtbar. Diese Tasks konnten priorisiert und bestimmten Kerneln zur Ausführung zugewiesen werden.



Bild




Außerdem waren alle Prozesse der ersten Version von WSL für Virenschutzprogramme sichtbar. Sie konnten wie normale Windows-Programme den Zugriff auf Ordner zulassen oder verweigern.



Bild




Mit dem Aufkommen von WSL 2 sind bestimmte Prozesse in dieser virtuellen Maschine nicht mehr sichtbar, und die Fähigkeit, Schreibschutz in Ordner zu schreiben, ist ebenfalls verschwunden. WSL 2 verfügt über Dateisystemzugriff unter Umgehung von Windows Defender. Welche spezifischen Schwachstellen dies in Zukunft mit sich bringen wird - wir werden sehen. WSL 2 kann jedoch durchaus zu einem Angriffsvektor für die Verschlüsselung der gesamten Festplatte werden.



Bild




Das Netzwerk hat sich auch in WSL 2 geringfügig geändert. Die erste Version von WSL hatte eine sehr seltsame Implementierung des Netzwerkstapels. Sie hing an dem Netzwerk, das Windows selbst verwendete. Außerdem konnten die WSL-Überwachungsports in Netstat überprüft und mit einer regulären Windows-Firewall geschlossen werden.



Bild




Jetzt gibt es in WSL 2 einen separaten Switch speziell für WSL, da es sich jetzt um eine separate virtuelle Maschine handelt, reine Langeweile.



Bild




Benchmarks



WSL ermöglichte es, Befehle von WSL direkt in Windows zu verwenden. Einschließlich in PowerShell.

Mit der göttlichen Powershell maß der Autor seine Lieblings-WSL-Programme, die er selbst am häufigsten verwendet.



Alle Benchmarks verwendeten Ubuntu 18.04 LTS für WSL1 und WSL2.



Jekyll



Site-Generierung. Ein Durchgang:



WSL1

Bild




WSL2

Bild




Wie Sie sehen können, ist WSL2 WSL1 beim Erstellen einer Site mit Jekyll weit unterlegen. 1,5 Sekunden gegenüber 9,6. Das Ergebnis ist zugunsten von WSL1. Interessanterweise benötigte WSL1 immer Sudo für den Schreibzugriff und wollte nicht ohne root generieren.



Anrufgeschwindigkeit



Hier testen wir die Geschwindigkeit, mit der die Shell aufgerufen und ein einfacher Befehl ausgeführt wird.



Measure-Command {
    [int]$i
    do {
        $i++
        wsl.exe -e 'uname'
       
    } until ($i -eq 20)
}


WSL1

Bild




WSL2

Bild




WSl2 wird etwas langsamer geladen. Dies ist völlig unmerklich, da das Ergebnis von 20 Starts genommen wird.



Git init und Mkdir



Jetzt lasst uns Git init und Mkdir schlagen. Erstellen Sie einen Ordner mit Mkdir und führen Sie Git init in diesem Ordner mit WSL aus.



Der Code:



Measure-Command {
    [int]$i
    do {
        Set-Location "C:\Users\user\Desktop\TestFolder"
        $i++
        $Foldername = Get-Random
 
        wsl.exe ''mkdir $Foldername''
        Set-Location $Foldername
        wsl.exe ''git init''
       
    } until ($i -eq 20)
}


WSL1

Bild




WSL2

Bild




Die Ergebnisse sind identisch.



WSL vs. andere Krücken



Warum also WSL wählen?



WSL 2 kann weiterhin Linux-Befehle direkt von Windows aus verwenden. Es ist praktisch, Bash direkt über eine Explorer-Zeichenfolge aufzurufen.



Und natürlich verwendet WSL die von Ihnen bereitgestellte Standard-Betriebssystemumgebung. Sie müssen Mingws widerliches Vim nicht verwenden, wenn Sie es gewohnt sind, mit menschlichen Editoren zu arbeiten.



Warum ist es besser, die WSL zu umgehen?



Libnotify in WSL1 sowie / proc / sys / fs fehlen in WSL1 vollständig. Wie oben erwähnt, verwendet die erste Version nicht denselben Linux-Kernel und WSL 2 musste diesen Fehler beheben.



Alle diese Bibliotheken sind in WSL 2 erschienen, jetzt funktioniert alles auf dem Hypervisor, aber die Probleme haben sich nicht verringert. Die automatische Generierung beim Erstellen einer neuen Datei und manchmal sogar beim Ändern der alten Datei funktioniert nicht.



Fans von NPM und anderen Dingen können die WSL-Seite umgehen und Lösungen verwenden, die für Windows entwickelt wurden.



Cooler Lay Hack für WSL (͡ ° ͜ʖ ͡ °)



Bild




Lassen Sie uns nun über den einzigen Grund für die Installation von WSL - Vlmcsd sprechen .

Möchten Sie Ihre lizenzierte Windows-Kopie nur für wissenschaftliche Zwecke auf etwas andere Weise aktivieren, aber keine seltsamen KMS-Aktivatoren verwenden, die aus dem Internet heruntergeladen wurden?

Dank Microsoft können Sie WSL verwenden. Hier ist eine Kurzanleitung.



Link zum Projekt Github , Link zu Releases .



Schnapp dir Ubuntu



Installiere Snap:



sudo apt update

sudo apt installiere snapd



Installiere vlmcsd:



sudo snap installiere vlmcsd



Mit ip addr überprüfen wir die IP-Adresse, an der die WSL hängt, und verwenden sie als KMS-Server. Hier ist ein Link zur Projektseite im Snapstore .



vlmcsd und Docket auf WSL



Das gleiche kann über Docker selbst oder über WSL und Docker erfolgen. Hier ist ein Link zum Projekt , ich kann es nicht besser erklären.



Windows-Seite:



So sieht die Aktivierung von Windows 10 PRO über KMS aus.



-ipk-W269N die slmgr.vbs WFGWX-YVC9B-4J6C9-T83GX

die slmgr.vbs -skms 192.168.88.166

die slmgr.vbs -ato



Diese Installationsmethode ist nur für Witze geeignet, da die WSL-Instanz immer deaktiviert wird, sobald Sie das Fenster schließen Übrigens ist die gesamte WSL vorerst nur für Witze und Git gut.

Der Autor hofft, dass Sie sich nicht zu langweilen.






All Articles