Pingüino en la ventana: sobre el potencial y las perspectivas de WSL2

Hola Habr!

Mientras la oferta de verano está en pleno apogeo, nos gustaría invitarle a discutir uno de los temas más ambiciosos en los que hemos estado trabajando últimamente: la interacción de Windows y Linux, en particular, relacionada con el desarrollo del sistema WSL . WSL 2 está en camino, y le ofrecemos una breve descripción de las características que nos esperan en este subsistema, así como un pronóstico para una mayor integración de Windows y Linux.



En mayo de este año, Microsoft anunció que WSL2, la última versión del subsistema de Windows en Linux, se ejecutará en un núcleo Linux completo desarrollado por la compañía.
Por lo tanto, por primera vez, Microsoft incluye el kernel de Linux en Windows como uno de sus componentes. Microsoft también está introduciendo una línea de comando en Windows que ampliará las capacidades de PowerShell y WSL.

Tanto el kernel de Linux para WSL2, creado por Microsoft, como la nueva línea de comandos de Windows son de interés principalmente para los desarrolladores.

"Este es el movimiento más poderoso del juego contra AWS", dijo Joshua Schwartz, jefe de digitalización de AT Kearney, una empresa de consultoría.

El futuro de Microsoft no está relacionado con el mercado de PC, aunque continuará manteniendo su terreno en este segmento. Será mucho más importante afianzarse en el mercado de la nube, uno de cuyos componentes en el futuro puede convertirse en PC de escritorio.

¿Qué hace WSL2?


WSL2 es la última infraestructura de subsistema de Windows para Linux. Le permite mejorar drásticamente el rendimiento del sistema de archivos y proporciona compatibilidad total con las llamadas del sistema.

Una de las principales solicitudes de la comunidad WSL estaba relacionada con el refinamiento de la funcionalidad. WSL2 tiene muchas más herramientas de Linux que WSL, en particular Docker y FUSE.
WSL2 maneja operaciones intensivas de archivos, en particular git clone, npm install, apt update y apt upgrade. El aumento de velocidad real depende de la aplicación específica y de cómo interactúa con el sistema de archivos.

Las primeras pruebas mostraron que WSL2 es aproximadamente 20 veces más rápido que WSL1 para descomprimir el tar del zip. Al usar git clone, npm install y cmake en varios proyectos, el sistema mostró un aumento de productividad de dos a cinco veces.

¿Esto ayudará a ganar la confianza de los desarrolladores?


En esencia, Microsoft busca ganar aceptación y credibilidad en la comunidad de desarrollo al asumir el desarrollo de su propia versión del kernel de Linux para admitir procesos WSL2, dijo Cody Swann, CEO de Gunner Technology.

“Además del desarrollo estrictamente para Windows, la creación de todas las demás aplicaciones (en la nube, móviles, aplicaciones web) en la PC fue extremadamente inconveniente, por lo que el desarrollador de alguna manera tuvo que descargar la distribución de Linux en paralelo con el sistema operativo Windows. Microsoft reconoció esto y propuso una solución ”, concluye.

Es poco probable que la introducción del kernel de Linux nativo afecte seriamente el trabajo con el sistema desde el punto de vista de un usuario común. Sin embargo, en este caso, surgen oportunidades para una interacción más estrecha entre los servicios de Microsoft y el sistema operativo Linux.
Tal movimiento por parte de Microsoft es realmente muy competente, porque ayuda a penetrar más profundamente en la comunidad de desarrolladores, así como a utilizar activamente productos que alguien más está desarrollando, es decir, conectarse al código abierto, dijo Swann.

Bienvenido a nuevo microsoft


La tendencia hacia la creación y el soporte del kernel de Linux "especialmente para Windows" refleja la tendencia decisiva de desarrollo hacia el código abierto, promovida por el CEO Satya Nadella. Microsoft no es lo mismo que bajo Gates y Balmer, cuando todo se mantenía detrás de una cerca de propiedad y nadie pensaba en la interoperabilidad.

“Satya ha transformado por completo a Microsoft en una plataforma mucho más moderna, y esta estrategia ha valido la pena. Hola, una capitalización de billones de dólares ", dice Schwartz.

Según Charles King, analista jefe de Pund-IT, las dos fortalezas principales de Microsoft son la eficiencia y la seguridad.

"Al utilizar activamente sus propios logros serios, recursos y herramientas, la compañía puede garantizar a los clientes que el kernel estará completamente actualizado y equipado con los últimos parches y correcciones para garantizar la seguridad completa", agrega.

Los desarrolladores también son ganadores


Los binarios de Linux realizan muchas funciones mediante llamadas al sistema, por ejemplo, acceder a archivos, solicitar memoria y crear procesos. WSL1 se basa en una capa de traducción que interpreta muchas de estas llamadas al sistema y les permite interactuar con el kernel de Windows NT.

La parte más difícil es implementar todas las llamadas al sistema. Como esto no se hizo en WSL1, algunas aplicaciones no pudieron funcionar allí. WSL2 presenta muchas aplicaciones nuevas que normalmente funcionan en este entorno.

La nueva arquitectura permite a Microsoft hacer las últimas optimizaciones para el kernel de Linux mucho más rápido que con WSL1. Microsoft puede actualizar el kernel WSL2, en lugar de volver a implementar todas las restricciones.

Herramienta de código abierto completo


El desarrollo de Microsoft de su propio kernel de Linux fue la culminación de muchos años de trabajo por parte de Linux Systems Group, así como de muchos otros equipos en todo Microsoft, dijo Jack Hammons, gerente de programas de Linux Systems Group, Microsoft.

El núcleo proporcionado para WSL2 será de código abierto, y Microsoft publicará instrucciones sobre cómo construir dicho núcleo en GitHub. La compañía interactuará con desarrolladores que quieran ayudar al proyecto y estimular cambios ascendentes.

Los desarrolladores de Microsoft crearon WSL2 utilizando la integración continua de la compañía y los sistemas de entrega continua. Este software se mantendrá a través del sistema de actualización de Windows y será completamente transparente para el usuario. El núcleo seguirá siendo relevante e incluirá todas las características de la última rama estable de Linux.

Para garantizar la disponibilidad de las fuentes, la compañía refleja los repositorios localmente, y también monitorea constantemente el contenido de la lista de correo de Linux sobre cuestiones de seguridad, y también trabaja con varias compañías que admiten trabajar con bases de datos en un entorno virtual corporativo (CVE). Esto garantiza que las últimas actualizaciones de Linux se tengan en cuenta en el kernel de Linux de Microsoft y se eliminen todas las amenazas emergentes.

Los cambios aguas arriba son vinculantes


Microsoft garantiza que todos los cambios en el núcleo se distribuirán en la dirección ascendente; este es un aspecto importante de la filosofía de Linux. El soporte para parches posteriores está asociado con una complejidad adicional; Además, esta práctica no es generalmente aceptada en la comunidad de desarrollo libre.

El objetivo de Microsoft, que está usando Linux activamente, es convertirse en un miembro disciplinado de esta comunidad y hacer que los cambios estén disponibles para la comunidad. Para lograr la estabilidad de las ramas asociadas con el soporte a largo plazo, algunos parches, por ejemplo, que contienen nuevas características, se pueden incluir solo en nuevas versiones del kernel y no se pueden portar a la versión actual de LTS en modo de compatibilidad con versiones anteriores.

Cuando las fuentes del núcleo WSL estén disponibles, consistirán en enlaces a un conjunto de parches y desde una parte estable de larga duración de las fuentes. Microsoft espera que con el tiempo esta lista se reduzca a medida que los parches se extiendan en la dirección ascendente, y se agregarán nuevos parches locales para admitir las últimas características de WSL.

Diseño de ventana más agradable.


Microsoft también anunció el lanzamiento de la próxima versión "invernal" de Windows Terminal, una nueva aplicación para usuarios que trabajan con herramientas y shells de línea de comandos, en particular Command Prompt, PowerShell y WSL.



Terminal de Windows

Windows Terminal 1.0 ofrece muchas opciones de configuración y configuración que brindan más control sobre el diseño de la ventana de terminal, así como sobre los shells / perfiles que deberían abrirse como nuevas pestañas.

La configuración se guardará en un archivo de texto estructurado, lo que facilitará la configuración y el diseño de la ventana de terminal a su gusto.

Microsoft deja de actualizar la consola de Windows existente y crea una nueva desde cero, y decide adoptar un nuevo enfoque. Windows Terminal se instala y ejecuta en paralelo con la aplicación existente de la Consola de Windows, que viene de fábrica.

Como funciona


Cuando un usuario de Windows 10 inicia directamente Cmd / PowerShell / etc., se desencadena el proceso adjunto a la instancia de consola normal. El mecanismo de configuración del nuevo terminal permite a los usuarios de Windows crear muchos perfiles para todos sus shells / aplicaciones / herramientas deseadas, ya sea en PowerShell, línea de comando, Ubuntu o incluso con conexiones SSH a dispositivos Azure o Internet of Things.

Estos perfiles pueden incluir su propia combinación de diseño de fuente y tamaño de fuente, temas de color, niveles de desenfoque o transparencia del fondo. Además, los usuarios podrán elegir una nueva fuente monoespacio para que la ventana del terminal se vea más moderna y fresca. Esta fuente proporciona ligaduras de programador, se distribuirá en el dominio público y se almacenará en su propio repositorio.

Las principales ventajas de la nueva interfaz de comandos de Windows son muchas pestañas y texto hermoso. El soporte para muchas pestañas se consideró la solicitud más popular para el desarrollo del terminal. Se obtiene un texto hermoso gracias al motor de renderizado basado en DirectWrite / DirectX, equipado con aceleración de GPU.

El motor muestra iconos de texto, glifos y caracteres especiales en las fuentes, incluidos los ideogramas chinos, japoneses y coreanos (CJK), emojis, caracteres de línea eléctrica, iconos y ligaduras de programador. Además, este motor muestra texto mucho más rápido que el GDI utilizado anteriormente en la consola.

La compatibilidad con versiones anteriores sigue en orden, aunque puede probar Windows Terminal si lo desea.

Cronología: cómo será


Microsoft proporcionará Windows Terminal a través de Microsoft Store en Windows 10 y lo actualizará regularmente. Por lo tanto, los usuarios siempre trabajarán con las últimas versiones y las últimas mejoras, prácticamente sin ningún esfuerzo adicional.

Microsoft planea lanzar una nueva terminal este invierno. Después de que Microsoft implemente Windows Terminal 1.0, los desarrolladores continuarán lidiando con muchas características que ya están reservadas en la cartera de pedidos.

El código fuente de la Terminal de Windows y la Consola de Windows ya está cargado en GitHub.

¿Qué podemos esperar en el futuro?


La posibilidad de que Microsoft use su propio kernel de Linux para otros fines, por ejemplo, para desarrollar su propia distribución de Linux, parece algo hipotético hoy en día.

Probablemente, el resultado depende de si Microsoft puede detectar una demanda notable de dicho producto y qué oportunidades comerciales puede abrir ese desarrollo, dice Charles King.

Él piensa que en el futuro previsible, la compañía centrará su trabajo principal en garantizar la compatibilidad cada vez más estrecha de Windows y Linux y su complemento mutuo.

Joshua Schwartz cree que en este caso será necesario sopesar qué inversiones se realizarán en este trabajo y cuál es el rendimiento de la misma. Si hoy Microsoft fuera una empresa muy joven, probablemente haría todo basado en Linux. Sin embargo, portar todas las mejores prácticas que Microsoft ya tiene a la arquitectura nativa de Linux hoy en día parece un proyecto costoso y complejo que apenas vale la pena. Los amantes de Linux obtendrán Linux para sí mismos, y la arquitectura básica permanecerá intacta.

Cuando Apple inventó Mac OS nuevamente en 2000, el sistema operativo se basaba en BSD Unix, que es más similar a Linux que a DOS. Hoy, la nueva versión de Microsoft Windows se crea específicamente sobre la base de Linux.

Tal vez una nueva puerta se abre ante nosotros?


El kernel de Linux de Microsoft puede allanar el camino para una colaboración más estrecha entre los servicios de Windows y el sistema operativo Linux. De hecho, estos desarrollos de Microsoft dan testimonio del hecho de que Microsoft ya entiende que hoy en día casi no hay clientes que prefieran existir en un mundo donde Windows está en todas partes.

Es mucho más sabio utilizar tecnologías y sistemas heterogéneos que satisfagan mejor los requisitos comerciales y situaciones prácticas específicas.

La pregunta estratégica más importante es, ¿qué nuevas oportunidades estratégicas abre este movimiento para la plataforma Microsoft misma?

Azure, el ecosistema basado en la nube de Microsoft, ya brinda un tremendo soporte para Linux. Anteriormente, Windows soportaba bien Linux con máquinas virtuales.

Los cambios fundamentales que ocurren hoy están relacionados con el hecho de que ahora los procesos de Linux se ejecutarán de forma nativa en el kernel de Windows, lo que significa que trabajar con Linux desde Windows será mucho más rápido que en las máquinas virtuales. Es probable que, como resultado, Azure se enriquezca con una capa completa de ingenieros que usan Linux a escala industrial.

Source: https://habr.com/ru/post/459844/


All Articles