¿WSL2 ejecuta Linux en una máquina virtual o junto con el kernel de Windows?

16

Siempre quise un terminal de Linux en Windows y WSL 1. me lo proporcionó, pero era dolorosamente lento, ya que era (supongo) una máquina virtual administrada por Hyper-V. Con WSL 2, es mucho más rápido relativamente, pero no puedo entender cómo lo hizo Microsoft.

¿Mejoraron Hyper-V o dejaron de usar una máquina virtual y crearon algo de magia para ejecutar el kernel de Linux en paralelo?

Sachin.Verma
fuente
3
Todavía es virtual, pero WSL2 usa un kernel de Linux (4.9) en lugar de cambiar las llamadas a las API de Windows y manejarlo de esa manera.
guiverc
99
@Sachin WSL 1 ejecuta binarios ELF en Windows al traducir las llamadas del sistema Linux a las llamadas del sistema Windows, lo que hace exactamente lo que su nombre describe, "Subsistema de Windows para Linux"
wjandrea
66
WSL 1 no era virtual @guiverc
Adrian
3
@ Sachin.Verma: ¿Qué quieres decir con "engaño"? WSL 1 fue una implementación de la API del kernel de Linux y ABI, al igual que el kernel de Linux es una implementación de la API del kernel de Linux y ABI. De hecho, así es como funcionan la mayoría de las capas de compatibilidad de Linux, por ejemplo, las de FreeBSD, HP-UX, AIX, Solaris, etc., también son en su mayoría implementaciones independientes del núcleo de Linux ABI y API en lugar de puertos del núcleo de Linux. También funciona al revés: todas las capas de compatibilidad para Unices comerciales en Linux fueron reimplementaciones independientes de sus API y ABI.
Jörg W Mittag
44
WinE también funciona de la misma manera. Implementa la API de Windows y ABI, en lugar de portar Windows para que se ejecute en Linux (lo cual no sería legalmente posible).
Jörg W Mittag

Respuestas:

17

Del artículo sobre WSL 2 de Microsoft Docs:

Breve descripción de la arquitectura WSL 2

WSL 2 utiliza lo último y lo mejor en tecnología de virtualización para ejecutar su kernel de Linux dentro de una máquina virtual (VM) de utilidad liviana. Sin embargo, WSL 2 NO será una experiencia de VM tradicional. Una experiencia de VM tradicional puede tardar en iniciarse, está aislada, consume muchos recursos y requiere su tiempo para administrarla. WSL 2 no tiene estos atributos. Todavía brindará los notables beneficios de WSL 1: altos niveles de integración entre Windows y Linux, tiempos de arranque extremadamente rápidos, espacio reducido de recursos y, lo mejor de todo, no requerirá configuración o administración de VM. Si bien WSL 2 usa una VM, se administrará y ejecutará detrás de escena, dejándolo con la misma experiencia de usuario que WSL 1.

Como podemos ver en los siguientes artículos (y discusiones debajo de ellos) WLS 2 usa la función Hyper-V:

pa4080
fuente
Por lo que he leído hasta ahora: estará aislado, consumirá recursos adicionales, tendrá un disco virtual dedicado.
LatinSuD