¿Cómo ejecutar un escritorio Linux en tu navegador? ¡WebVM 2.0 (WebAssembly) es la respuesta!
¡¿Espera, QUÉ?!
¿Recuerdas los días en que ejecutar un escritorio Linux completo significaba particionar discos duros, configurar gestores de arranque y sacrificar tu preciado fin de semana a los dioses de la administración de sistemas? Bueno, amigos, esos días se acabaron (más o menos). WebVM 2.0 te permite ejecutar un entorno Linux completo, incluyendo un escritorio, completamente dentro de tu navegador. Sí, leíste bien. Tu navegador. Gracias a la magia de WebAssembly, HTML5 y un toque de magia negra (o tal vez solo ingeniería inteligente), WebVM trae una máquina virtual Linux completa, almacenamiento persistente, redes e incluso Xorg a tu navegador, todo del lado del cliente. No más arranque dual, no más máquinas virtuales consumiendo tu RAM, solo Linux puro y sin adulterar en una pestaña. Echa un vistazo al entorno Alpine Linux / Xorg / i3 para verlo en acción.
[
WebVM - Linux virtualization in WebAssembly
Linux virtual machine, running in the browser via HTML5/WebAssembly. Networking and graphics supported.
WebVM
](webvm.io/alpine.html?ref=sredevops.org)
¿Cómo funciona esta brujería?
WebVM se basa en cuatro pilares de la tecnología web moderna:
- Motor de virtualización CheerpX: Este motor basado en WebAssembly es el corazón de WebVM. Es un compilador JIT que traduce instrucciones x86 a WebAssembly, junto con una capa de emulación para las llamadas al sistema Linux. Esto le permite ejecutar binarios x86 de Linux sin modificar directamente en tu navegador.
- Backend de disco en streaming: Arrancar una distribución Linux completa requiere un sistema de archivos considerable. WebVM evita inteligentemente descargar la imagen completa por adelantado mediante el uso de un backend de disco en streaming. Descarga bloques de 128kb bajo demanda desde un Cloudflare Worker, lo que garantiza una baja latencia y una experiencia fluida. Los cambios se guardan en el IndexedDB de tu navegador, lo que proporciona persistencia.
- Capa de red: Las redes en un navegador son complicadas. WebVM utiliza Tailscale para crear una VPN privada, lo que permite que la máquina virtual acceda a Internet (y a otras WebVM) de forma segura.
- Dispositivo gráfico emulado: WebVM admite Xorg utilizando la API KMS (Kernel Modesetting) de Linux, lo que habilita las aplicaciones gráficas y los entornos de escritorio. Actualmente, se incluye el administrador de ventanas ligero i3, pero se planea la compatibilidad con entornos más pesados como XFCE.
CheerpX: virtualización x86 sin los muñecos vudú
CheerpX es la tecnología central detrás de WebVM. Es un motor de virtualización x86 seguro, robusto y de alto rendimiento construido completamente sobre WebAssembly y las API del navegador. Se ejecuta dentro del sandbox del navegador, aislando las aplicaciones virtualizadas de tu sistema local. Piensa en ello como un pequeño universo autónomo de Linux que se ejecuta en la pestaña de tu navegador.
CheerpX no es solo para WebVM. También impulsa CheerpX para Flash (porque alguien tiene que mantener vivas esas antiguas aplicaciones Flash), el CheerpX Games Runner (para jugar juegos de GOG en tu navegador), y está disponible como un paquete NPM.
Gestión de discos: porque a nadie le gusta un disco lleno
El backend de disco en streaming de WebVM es una innovación clave. Utiliza WebSockets y Cloudflare Workers para descargar bloques de disco bajo demanda, minimizando la latencia y el uso de ancho de banda. La compatibilidad con lectura y escritura y la persistencia local se gestionan mediante IndexedDB, por lo que tus cambios se guardan incluso si cierras el navegador.
Redes: ya no es solo para videos de gatos
Las redes en un entorno de navegador son un desafío. WebVM aborda esto integrándose con Tailscale, creando una VPN privada que permite que la máquina virtual se conecte a Internet y a otras WebVM. Este enfoque evita los problemas de escalabilidad, privacidad y abuso asociados con las soluciones tradicionales basadas en proxy.
Gráficos: Xorg y la API KMS (suena menos aterrador de lo que parece)
WebVM admite aplicaciones gráficas y entornos de escritorio a través de Xorg y la API KMS (Kernel Modesetting) de Linux. Esto permite una transición fluida de los mensajes del kernel a la animación de arranque a Xorg sin el temido parpadeo de la pantalla. Actualmente, WebVM cuenta con el administrador de ventanas i3, pero el soporte para entornos más pesados como XFCE está en la hoja de ruta. El soporte para Wayland también está planeado, pero tomará algún tiempo.
¿Por qué alguien haría esto?
WebVM es un escaparate para CheerpX y una herramienta útil por derecho propio. Proporciona una forma conveniente de acceder a herramientas de línea de comandos, ejecutar fragmentos de código e incluso administrar repositorios de git sobre la marcha. También es un potencial cambio de juego para la educación, que ofrece acceso sin mantenimiento y sin costo a entornos de desarrollo. Y seamos honestos, ejecutar un escritorio Linux completo en tu navegador es simplemente genial.
El futuro es brillante (y probablemente se ejecute en un navegador)
El lanzamiento de WebVM 2.0 y CheerpX 1.0 es solo el comienzo. Los planes futuros incluyen un rendimiento mejorado, compatibilidad con contenedores Docker y mejoras en la experiencia de usuario de WebVM. Las posibilidades son tan vastas como el propio Internet (o al menos tan vastas como la memoria de tu navegador).
¡No tienes excusas para probar Linux!
WebVM es un proyecto fascinante que amplía los límites de lo que es posible en un navegador web. Es gratuito, de código abierto y está disponible para que cualquiera lo use, modifique y mejore. Si encuentras algún error, infórmalo en GitHub. Y si tienes alguna pregunta, únete a la comunidad de Leaning Technologies en Discord.
Artículo original de Alessandro Pignotti en Leaning Technologies Labs
[
WebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssembly
WebVM is a full Linux environment running in the browser, client-side. It is a complete virtual machine, with support for persistent data storage, networking and, as of today’s release, Xorg and complete desktop environments. This article will explain the WebVM architecture, how the main components work, and what you can build with this technology.
Leaning Technologies Developer Hub
](labs.leaningtech.com/blog/webvm-20?ref=sred..)
[
Web Assembly - SREDevOps.org
SRE, DevOps, Linux, Ethical Hacking, AI, ML, Open Source, Cloud Native, Platform Engineering en Español, Portugués (Brasil) and English
SREDevOps.orgNicolás Georger