Compatibilidad con Windows

Kernel de Linux en Windows 10

Kernel de Linux en Windows 10
¿Cómo funciona el nuevo subsistema de Windows para Linux (v2)??

Microsoft anunció recientemente que pronto lanzarán un kernel de Linux que está integrado directamente en Windows 10. Esto permitirá a los desarrolladores aprovechar la plataforma Windows 10 al desarrollar aplicaciones para Linux. De hecho, este es el siguiente paso en la evolución del Subsistema de Windows para Linux (WSL). Revisemos la versión 1 de WSL antes de adentrarnos en el tema de la intergación del kernel de Linux y lo que significa.

Si desea comenzar con WSL (v1), aquí hay una guía para eso.

1.  Versión 1 de WSL

El subsistema de Windows para Linux realmente debería llamarse un subsistema de Linux para Windows. Ofrece un controlador (un subsistema) para el sistema operativo Windows, que traduce las llamadas al sistema Linux en llamadas nativas al sistema Windows 10 que el kernel de NT comprende.

Esto crea una ilusión algo creíble para los binarios de Linux de que, de hecho, se ejecutan sobre un kernel de Linux! Esto funciona lo suficientemente bien como para que no solo pueda ejecutar binarios simples de 64 bits compilados para Linux, sino que también pueda ejecutar un Userland completo (un.k.a una distribución de Linux como Debian o Ubuntu) además de WSL v1. Entonces, cuando instala Ubuntu desde la tienda de Microsoft, solo obtiene los binarios de usuario de Ubuntu que Canonical envía para el entorno WSL v1 de Microsoft.

Sin embargo, WSL v1 todavía está lejos de ser perfecto. Cierta semántica que esperaría un sistema Linux es totalmente inaceptable en Windows. Por ejemplo, no puede cambiar el nombre de un archivo abierto en Windows, pero puede hacerlo en Linux.

Otros ejemplos obvios incluyen el rendimiento deficiente del sistema de archivos de WSL v1 y su incapacidad para ejecutar Docker.

2.  WSL v2 el kernel de Linux

Esta nueva versión de WSL resuelve todos estos problemas al incluir el kernel de Linux que se ejecuta en el hipervisor Hyper-V. A lo largo de su anuncio y demostraciones, Craig Loewen y su colega de Microsoft destacaron el hecho de que, en el futuro, Microsoft invertirá enormemente en tecnología de virtualización.

El uso de un kernel de Linux resuelve todos los problemas semánticos que no se pueden resolver con solo una capa de traducción de llamadas al sistema. Este kernel de Linux será muy liviano y será mantenido por Microsoft con todos los cambios en el kernel de Linux hechos de código abierto. En su demostración, mostraron cómo puede simplemente migrar las aplicaciones WSL v1 existentes para que se ejecuten sin modificaciones en un entorno WSL v2. El rendimiento del sistema de archivos ha mejorado de 3 a 4 veces y todo el sistema se siente mucho más receptivo.

3.  Como funciona?

Básicamente, tenemos una máquina virtual Linux con muchas aplicaciones de usuario, e.g, OpenSUSE o Debian o Ubuntu Userland. Obtiene más de una distribución en su máquina Windows, con una sola máquina virtual Linux, por lo que está bien. Pero también implica que cada vez que abre su terminal WSL Ubuntu, está iniciando una VM completa! Eso va a tomar un tiempo, ¿verdad??

En realidad no. El kernel de Linux es en realidad lo suficientemente pequeño y liviano como para que Microsoft pudiera obtener tiempos de arranque locos con él (~ 1 segundo). Lo lograron eliminando todo el código del cargador de arranque y, dado que es una VM, cargan directamente el kernel de Linux en su espacio de direcciones en la memoria y configuran algunos estados de la VM que espera el kernel. Este es el mismo mecanismo que impulsa otra nueva característica de Windows 10 que es Windows Sandbox.

Tiene una huella de memoria muy pequeña, se carga en un segundo y el formato nativo del sistema de archivos ext4 le permite ofrecer una experiencia de usuario muy fluida. La máquina virtual solo se ejecuta cuando la necesita.

Además, no está completamente aislado como una máquina virtual tradicional. Puede interactuar muy fácilmente con el resto del sistema de Windows, incluidos los archivos en sus unidades de Windows usando WSL v2. No es una máquina virtual aislada sino una parte integrada de Windows 10. ¿Cómo logra eso??

4.  Viva el Plan 9

Con WSL v1, acceder a archivos y directorios en sus invitados de Windows era trivial. Su área de usuario de Linux es solo una aplicación en Windows, por lo que puede leer y escribir archivos que originalmente pertenecen al sistema operativo nativo con bastante facilidad.

Con WSL v2, tienes una VM ejecutándose con su disco duro virtual (formateado con ext4, por supuesto) y si queremos una experiencia similar a la de WSL v1, necesitamos algunos mecanismos extra. Ingrese al Plan 9.

Plan 9, también escrito como, 9P es un sistema operativo desarrollado originalmente en Bell Labs. Si bien es poco probable que alguna vez lo encuentre ejecutándose en producción, aún vive a medida que varios otros sistemas operativos adoptan ideas interesantes que se incuban en él, incluido el Protocolo 9P para un servidor de archivos.

5.  Sistemas de archivos

WSL v2 tendrá un servidor de protocolo 9P ejecutándose en su host de Windows 10 y un cliente 9P ejecutándose dentro de sus aplicaciones WSL. Esto le permite acceder a los archivos de Windows 10 de forma nativa dentro de su entorno WSL. La unidad C: se montará en / mnt / c, al igual que WSL v1, y el entorno WSL puede acceder a cada archivo dentro del host de Windows 10.

Lo contrario también será cierto. Habrá un servidor de protocolo 9P ejecutándose en su entorno Linux con su cliente correspondiente en el host de Windows 10. Esto permitirá a los usuarios acceder a su sistema de archivos Linux (ext4) desde el entorno Windows 10. Permitiéndole editar su código fuente o archivos de configuración usando su IDE favorito instalado en Windows, enumerando todos los directorios usando el explorador de archivos de Windows 10 y mucho más. Esencialmente, ejecutará sus distribuciones de Linux favoritas con la interfaz de usuario de Windows 10.

6.  Estibador

En su anuncio, Microsoft también insinuó que este nuevo entorno también será utilizado por Docker para enviar sus futuras aplicaciones de Docker para Windows. Dado que hay un kernel de Linux, ejecutar Docker encima de él será bastante fácil. En la demostración, ejecutaron Docker sobre Ubuntu con WSL v2 y funcionó como si se estuviera ejecutando en una instalación nativa de Ubuntu.

Para dar un ejemplo muy superficial, si ha trabajado con Dockerfiles en un sistema Windows, debe haber notado los problemas de seguridad que se deben a la falta de permisos de archivo similares a Unix. Eso ya no será un problema. Docker en Windows ya usa una máquina virtual personalizada para proporcionar contenedores de Linux, presumiblemente, ahora usará WSL v2 para usar el kernel de Linux que incluye microsoft.

Conclusión

En general, estoy muy impresionado con lo que Microsoft está haciendo para proporcionar un refugio para los desarrolladores de Linux que también quieren usar Windows. Con suerte, a largo plazo, fomentará una gran cantidad de polinización cruzada entre los dos ecosistemas diferentes.

Si está ejecutando Windows 10 Home, Pro o Enterprise Edition, puede probar WSL v2 optando por las versiones preliminares de Windows 10. Aquí hay una guía sobre cómo hacer eso.

Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...