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
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.
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.
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.
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.
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.
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
WSL2
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
WSL2
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
WSL2
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 (͡ ° ͜ʖ ͡ °)
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.