Comparación de los subsistemas WSL 1 y WSL 2. ¿Debería cambiar?





En este post al estilo de "pensar en voz alta" el autor quisiera comparar WSL de la primera y segunda versión, ya que existe experiencia de comunicación.



WSL 1 vs WSL 2, lo que me hizo feliz



imagen


Fuente de MSDN



1. Usando un kernel de Linux real



La inclusión de un kernel de Linux real ha aumentado la E / S del sistema de archivos y las llamadas al sistema. 

Un kernel de Linux especialmente optimizado hace que WSL 2 parezca ser más rápido que WSL 1. 

En algunas tareas, de acuerdo con las mediciones de Microsoft , como desempaquetar archivos, WSL 2 fue 20 veces más rápido que WSL 1 y aproximadamente 5 veces más rápido al usarlo. Git clone y npm install.

Puede dedicar su tiempo a buscar puntos de referencia aquí y aquí .



2. Soporte de Docker nativo.



En principio, tal oportunidad apareció solo con WSL 2.



La alegría terminó allí.



WSL 1 vs WSL 2, que no agradó



Comencemos con las muletas más nuevas de Microsoft y el tipo de innovación que me molestó personalmente.

La primera versión de WSL no utilizó un kernel de Linux real, ni tampoco la virtualización. WSL era un poco como Wine, pero no del todo.



Se utilizó una capa especial para traducir las llamadas de los programas de Linux a este shell.

Esto, por supuesto, ralentizó todo, pero también tenía ventajas.



Por ejemplo, todos los programas que se ejecutaban en WSL 1 estaban visibles en el administrador de tareas, estas tareas podrían priorizarse y recibir núcleos específicos para su ejecución.



imagen




Además, todos los procesos de la primera versión de WSL eran visibles para los antivirus, se les podía permitir o denegar el acceso a las carpetas, al igual que los programas normales de Windows.



imagen




Con la llegada de WSL 2, los procesos específicos en esta máquina virtual ya no son visibles y la capacidad de protección contra escritura en carpetas también ha desaparecido. WSL 2 tiene acceso al sistema de archivos sin pasar por Windows Defender. Qué vulnerabilidades específicas traerá esto en el futuro, ya veremos. Pero WSL 2 bien puede convertirse en un vector de ataque para cifrar todo el disco.



imagen




La red también cambió ligeramente en WSL 2. La primera versión de WSL tenía una implementación muy extraña de la pila de red, colgaba de una red que usaba el propio Windows, además, los puertos de escucha de WSL podían verificarse en Netstat y cerrarse con el Firewall de Windows habitual.



imagen




Ahora, en WSL 2 hay un conmutador separado específicamente para WSL, porque ahora es una máquina virtual separada, puro aburrimiento.



imagen




Benchmarks



WSL hizo posible usar comandos de WSL directamente en Windows. Incluido en PowerShell.

Usando el divino Powershell, el autor midió sus programas WSL favoritos, que él mismo usa con mayor frecuencia.



Todos los puntos de referencia utilizaron Ubuntu 18.04 LTS para WSL1 y WSL2.



Jekyll



Generación de sitios. Un pase:



WSL1

imagen




WSL2

imagen




Como puede ver, WSL2 es muy inferior a WSL1 cuando se crea un sitio con Jekyll. 1,5 segundos frente a 9,6. El resultado está a favor de WSL1. Curiosamente, WSL1 siempre requirió que Sudo tuviera acceso de escritura y no quería generar sin root.



Velocidad de llamada



Aquí probamos la velocidad de llamar al shell y ejecutar un comando simple.



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


WSL1

imagen




WSL2

imagen




WSl2 se carga un poco más lento. Esto es completamente imperceptible, ya que se toma el resultado de 20 lanzamientos.



Git init y Mkdir



Ahora veamos a Git init y Mkdir. Cree una carpeta con Mkdir y ejecute Git init dentro de esa carpeta usando WSL.



El código:



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

imagen




WSL2

imagen




Los resultados son idénticos.



WSL vs. otras muletas



Entonces, ¿por qué elegir WSL?



WSL 2 aún conserva la capacidad de usar comandos de Linux directamente desde Windows. Es conveniente invocar a Bash directamente desde una cadena de explorador.



Y, por supuesto, WSL usa el entorno de sistema operativo predeterminado que proporcionó, no tiene que usar el detestable Vim de Mingw si está acostumbrado a trabajar con editores humanos.



¿Por qué es mejor omitir WSL.



Libnotify, en WSL1, así como / proc / sys / fs, están completamente ausentes en WSL1, como se mencionó anteriormente, la primera versión no usa el mismo kernel de Linux y WSL 2 tuvo que arreglar esta jamba.



Todas estas bibliotecas aparecieron en WSL 2, ahora todo funciona en el hipervisor, pero los problemas no han disminuido. La generación automática cuando se crea un nuevo archivo y, a veces, incluso cuando se cambia el anterior, no funciona.



Los fanáticos de NPM y otras cosas, esto es todo por ahora, pueden pasar por alto el lado de WSL, usar soluciones desarrolladas para Windows.



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



imagen




Ahora hablemos de la única razón para instalar WSL - Vlmcsd .

¿Desea activar su copia con licencia de Windows de una manera ligeramente diferente únicamente por el bien de un experimento científico, pero no desea utilizar extraños activadores KMS descargados de Internet?

Gracias Microsoft, puedes usar WSL, aquí tienes una guía rápida.



Enlace al proyecto Github , enlace a lanzamientos .



Encajar en Ubuntu



Instalar Snap:



sudo apt update

sudo apt install snapd



Instalar vlmcsd:



sudo snap install vlmcsd



Usando ip addr, verificamos la dirección IP en la que se cuelga WSL y la usamos como servidor KMS. Aquí hay un enlace a la página del proyecto en snapstore .



vlmcsd y Docket en WSL



Lo mismo se puede hacer a través de Docker mismo, o WSL y Docker. Aquí hay un enlace al proyecto , no puedo explicarlo mejor.



Lado de Windows:



Así es como se ve la activación de Windows 10 PRO a través de KMS.



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

el slmgr.vbs -skms 192.168.88.166

el slmgr.vbs -ato



Este método de instalación es adecuado solo para bromas, porque la instancia de WSL siempre se apagará tan pronto como cierre la ventana, como en el por cierto, por ahora, todo WSL solo sirve para bromas y Git.

El autor espera que no se aburra demasiado.






All Articles