WSL2 exécute-t-il Linux sur une machine virtuelle ou aux côtés du noyau Windows?

16

J'ai toujours voulu un terminal Linux dans Windows et il a été satisfait par WSL 1. Mais il était douloureusement lent car c'était (je suppose) une machine virtuelle gérée par Hyper-V. Avec WSL 2, c'est beaucoup plus rapide, mais je ne comprends pas comment Microsoft l'a fait.

Ont-ils amélioré Hyper-V ou ont-ils cessé d'utiliser une machine virtuelle et créé de la magie pour exécuter le noyau Linux en parallèle?

Sachin.Verma
la source
3
Il est toujours virtuel, mais WSL2 utilise un noyau linux (4.9) au lieu de changer les appels aux API Windows et de le gérer de cette façon.
guiverc
9
@Sachin WSL 1 exécute les binaires ELF sur Windows en traduisant les appels système Linux en appels système Windows, ce qui en fait exactement ce que son nom décrit, "Windows Subsystem for Linux"
wjandrea
6
WSL 1 n'était pas virtuel @guiverc
Adrian
3
@ Sachin.Verma: Qu'entendez-vous par "canular"? WSL 1 était une implémentation de l'API du noyau Linux et de l'ABI, tout comme le noyau Linux est une implémentation de l'API du noyau Linux et de l'ABI. En fait, c'est ainsi que la plupart des couches de compatibilité Linux fonctionnent, par exemple celles sur FreeBSD, HP-UX, AIX, Solaris, etc. sont également principalement des réimplémentations indépendantes du noyau Linux ABI et API au lieu de ports du noyau Linux. Cela fonctionne également dans l'autre sens: toutes les couches de compatibilité pour les Unices commerciaux sous Linux étaient des réimplémentations indépendantes de leurs API et ABI.
Jörg W Mittag
4
WinE fonctionne également de la même manière. Il implémente l'API Windows et ABI, au lieu de porter Windows pour fonctionner sur Linux (ce qui ne serait pas légalement possible).
Jörg W Mittag

Réponses:

17

De l'article À propos de WSL 2 de Microsoft Docs:

Bref aperçu de l'architecture WSL 2

WSL 2 utilise la technologie de virtualisation la plus récente et la plus performante pour exécuter son noyau Linux à l'intérieur d'une machine virtuelle utilitaire légère (VM). Cependant, WSL 2 ne sera PAS une expérience VM traditionnelle. Une expérience de machine virtuelle traditionnelle peut être lente à démarrer, est isolée, consomme beaucoup de ressources et nécessite votre temps pour la gérer. WSL 2 n'a pas ces attributs. Il offrira toujours les avantages remarquables de WSL 1: des niveaux élevés d'intégration entre Windows et Linux, des temps de démarrage extrêmement rapides, un faible encombrement des ressources, et surtout ne nécessitera aucune configuration ou gestion de machine virtuelle. Bien que WSL 2 utilise une machine virtuelle, elle sera gérée et exécutée en arrière-plan, vous laissant la même expérience utilisateur que WSL 1.

Comme nous pouvons le voir dans les articles suivants (et les discussions ci-dessous), WLS 2 utilise la fonction Hyper-V:

pa4080
la source
D'après ce que j'ai lu jusqu'à présent: il sera isolé, il consommera des ressources supplémentaires, il aura un disque virtuel dédié.
LatinSuD