Comparaison des sous-systèmes WSL 1 et WSL 2. Devez-vous changer?





Dans ce post dans le style de "penser à voix haute", l'auteur aimerait comparer le WSL des première et deuxième versions, car il y a une expérience de la communication.



WSL 1 vs WSL 2, ce qui m'a fait plaisir



image


Source MSDN



1. Utiliser un vrai noyau Linux



L'inclusion d'un vrai noyau Linux a augmenté les E / S du système de fichiers et les appels système. 

Un noyau Linux spécialement optimisé fait que WSL 2 semble être plus rapide que WSL 1. 

Dans certaines tâches, selon les mesures de Microsoft , telles que le déballage des archives, WSL 2 était 20 fois plus rapide que WSL 1, et environ 5 fois plus rapide lors de l'utilisation Clonage de Git et installation de npm.

Vous pouvez passer votre temps à regarder des benchmarks ici et ici .



2. Prise en charge native de docker.



En principe, une telle opportunité n'est apparue qu'avec WSL 2.



La joie s'est arrêtée là.



WSL 1 vs WSL 2, ce qui n'a pas plu



Commençons par les dernières béquilles de Microsoft et le type d'innovation qui m'a personnellement bouleversé.

La première version de WSL n'utilisait pas de véritable noyau Linux, pas plus que la virtualisation. WSL était un peu comme Wine, mais pas tout à fait.



Une couche spéciale a été utilisée pour traduire les appels des programmes Linux dans ce shell.

Cela a bien sûr tout ralenti, mais cela avait aussi des avantages.



Par exemple, tous les programmes qui s'exécutaient sur WSL 1 étaient visibles dans le gestionnaire de tâches, ces tâches pouvaient être hiérarchisées et des noyaux spécifiques pouvaient être exécutés.



image




De plus, tous les processus de la première version de WSL étaient visibles pour les antivirus, ils pouvaient se voir autoriser ou refuser l'accès aux dossiers, tout comme les programmes classiques pour Windows.



image




Avec l'avènement de WSL 2, les processus spécifiques de cette machine virtuelle ne sont plus visibles et la possibilité d'écrire la protection dans les dossiers a également disparu. WSL 2 a un accès au système de fichiers en contournant Windows Defender. Quelles vulnérabilités spécifiques cela apportera à l'avenir - nous verrons. Mais WSL 2 pourrait bien devenir un vecteur d'attaque pour chiffrer l'intégralité du disque.



image




La mise en réseau a également légèrement changé dans WSL 2. La première version de WSL avait une implémentation très étrange de la pile réseau, elle était suspendue sur un réseau que Windows lui-même utilisait, de plus, les ports d'écoute WSL pouvaient être vérifiés dans Netstat et fermés avec un pare-feu Windows classique.



image




Maintenant, dans WSL 2, il existe un commutateur distinct spécifiquement pour WSL, car il s'agit maintenant d'une machine virtuelle distincte, de l'ennui.



image




Benchmarks



WSL a permis d'utiliser les commandes de WSL directement dans Windows. Y compris dans PowerShell.

À l'aide de Powershell divin, l'auteur a fait des mesures de ses programmes WSL préférés, qu'il utilise lui-même le plus souvent.



Tous les benchmarks ont utilisé Ubuntu 18.04 LTS pour WSL1 et WSL2.



Jekyll



Génération de site. Un passage:



WSL1

image




WSL2

image




Comme vous pouvez le voir, WSL2 est bien inférieur à WSL1 lors de la création d'un site à l'aide de Jekyll. 1,5 seconde contre 9,6. Le résultat est en faveur de WSL1. Fait intéressant, WSL1 avait toujours besoin de Sudo pour l'accès en écriture et ne voulait pas générer sans racine.



Vitesse d'appel



Ici, nous testons la vitesse d'appeler le shell et d'exécuter une commande simple.



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


WSL1

image




WSL2

image




WSl2 se charge un peu plus lentement. Ceci est complètement imperceptible, puisque le résultat de 20 lancements est pris.



Git init et Mkdir



Maintenant battons Git init et Mkdir. Créez un dossier avec Mkdir et effectuez Git init dans ce dossier en utilisant WSL.



Le 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

image




WSL2

image




Les résultats sont identiques.



WSL contre autres béquilles



Alors pourquoi choisir WSL?



WSL 2 conserve toujours la possibilité d'utiliser les commandes Linux directement à partir de Windows. Il est pratique d'appeler Bash directement à partir d'une chaîne d'explorateur.



Et bien sûr, WSL utilise l'environnement de système d'exploitation par défaut que vous avez fourni, vous n'avez pas besoin d'utiliser Vim répugnant de Mingw si vous avez l'habitude de travailler avec des éditeurs humains.



Pourquoi est-il préférable de contourner WSL.



Libnotify, dans WSL1, ainsi que / proc / sys / fs, sont complètement absents dans WSL1, comme mentionné ci-dessus, la première version n'utilise pas le même noyau Linux et WSL 2 a dû réparer ce montant.



Toutes ces bibliothèques sont apparues dans WSL 2, maintenant tout fonctionne sur l'hyperviseur, mais il n'y a pas moins de problèmes. La génération automatique lorsqu'un nouveau fichier est créé et parfois même lorsque l'ancien est modifié ne fonctionne pas.



Les fans de NPM et d'autres choses, c'est tout pour l'instant, peuvent contourner le côté WSL, utiliser des solutions développées pour Windows.



Cool Lay Hack pour WSL (͡ ° ͜ʖ ͡ °)



image




Parlons maintenant de la seule raison d'installer WSL - Vlmcsd .

Voulez-vous activer votre copie sous licence de Windows d'une manière légèrement différente uniquement dans le cadre d'une expérience scientifique, mais ne souhaitez pas utiliser d'étranges activateurs KMS téléchargés sur Internet?

Merci Microsoft, vous pouvez utiliser WSL, voici un guide rapide.



Lien vers le projet Github , lien vers les versions .



Snap sur Ubuntu



Installez Snap:



sudo apt update

sudo apt install snapd



Installez vlmcsd:



sudo snap install vlmcsd



En utilisant ip addr, nous vérifions l'adresse IP sur laquelle WSL se bloque et l'utilisons comme serveur KMS. Voici un lien vers la page du projet sur snapstore .



vlmcsd et Docket sur WSL



La même chose peut être faite via Docker lui-même, ou WSL et Docker. Voici un lien vers le projet , je ne peux pas mieux l'expliquer.



Côté Windows:



Voici à quoi ressemble l'activation de Windows 10 PRO via KMS.



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

slmgr.vbs -skms 192.168.88.166

slmgr.vbs -ato



Cette méthode d'installation est juste pour les blagues, car l'instance WSL sera toujours fermée dès que vous fermez sa fenêtre, comme dans au fait, pour l'instant, tout WSL n'est bon que pour les blagues et Git.

L'auteur espère que vous ne vous ennuyez pas trop.






All Articles