- JSLinux, que permite ejecutar Linux y otros sistemas operativos directamente en el navegador web, ahora añade soporte para la arquitectura x86_64
- También incorpora compatibilidad con AVX2, AVX-512 y APX, convirtiéndose en el único emulador público de sistema completo x86 que actualmente soporta APX
- Está basado en Alpine Linux 3.23.2 e incluye las extensiones de instrucciones AVX-512 e Intel APX
- Además de los sistemas existentes basados en x86 y RISC-V, ahora también puede ejecutarse en un entorno de 64 bits
- Cada sistema ofrece una interfaz de consola o X Window, y algunos admiten acceso a archivos mediante VFsync
- Con el avance de la tecnología de virtualización basada en navegador, experimentar con sistemas operativos y montar entornos de prueba se vuelve mucho más sencillo
Resumen de JSLinux
- JSLinux es un emulador web que permite ejecutar Linux u otros sistemas operativos dentro del navegador
- Los usuarios pueden ejecutar máquinas virtuales desde una página web sin instalación adicional
- Se pueden elegir distintas arquitecturas de CPU y configuraciones de sistemas operativos
Lista de sistemas compatibles
- x86_64: ofrece una versión de consola de Alpine Linux 3.23.2
- x86: soporta varios sistemas como Alpine Linux 3.12.0, Windows 2000 y FreeDOS
- riscv64: soporta Buildroot Linux y Fedora 33
- Cada sistema ofrece un enlace de inicio y puede configurarse mediante el archivo de configuración de TEMU
- Algunos sistemas pueden integrarse con sistemas de archivos externos mediante VFsync
- Todas las configuraciones son desarrolladas y mantenidas por Fabrice Bellard
3 comentarios
Hay que elogiar al creador, Fabrice Bellard, cada vez que sale un artículo relacionado (nacido en 1972)
En 1987, a los 15 años, desarrolló el ejecutable comprimido LZEXE en ensamblador
En 2000 desarrolló FFMPEG y, ese mismo año, creó un compilador de C de menos de 4 KB y ganó la IOCCC
En 2005 presentó QEMU
En 2011 publicó JSLinux y lo ha seguido desarrollando hasta hoy
"Hágase millonario y retírese"
La compatibilidad con x86 de 64 bits se dio a conocer en enero, y en esta actualización se añadió soporte para AVX2, AVX-512 y APX.
Comentarios en Hacker News
Lo que más quiero hacer es usar un motor de Linux en WASM para ejecutar directamente un SO virtual dentro del navegador y correr un agente de programación
Sería realmente interesante conectarlo con un agente como Claude Code o Codex CLI que sepa manejar Bash y herramientas de Linux
Creo que el navegador es el mejor entorno de sandbox. Si se pudiera correr un loop de agente sobre WebAssembly Linux, sería un truco genial
Antes experimenté con la demo de v86, pero todavía no llegué a conectarle un agente. Se pueden enviar comandos de Linux mediante una caja de texto
Aunque el rendimiento se queda un poco corto, así que no lo investigué más a fondo
La demo del stack completo está en vitedemo.browserpod.io, y el trabajo anterior puede verse en webvm.io
Me pareció interesante, así que corrí el benchmark de Primes en Chrome sobre una Mac Mini M1 para los entornos x86_64, x86 y riscv64, respectivamente
RISC-V tuvo una eficiencia de emulación mucho mejor que x86: compiló más rápido, el código fue más pequeño y también ejecutó más rápido
Eso sí, las versiones de gcc eran distintas en cada caso (15.2.0 vs 9.3.0 vs 7.3.0), así que no es una comparación completamente justa
Código de referencia
Esto es off-topic, pero volver a ver la interfaz de Windows 2000 me da mucha nostalgia. Siento que las interfaces actuales son realmente horribles
Lamentablemente, no se publicaron ni el código fuente de la capa de emulación de x86 de 64 bits ni la configuración de compilación
Si quieres una versión más open source, vale la pena revisar container2wasm
Me pregunto si JSLinux sigue siendo un intérprete o si ahora ya hace compilación JIT
O quizá el JIT de los motores de JS ya es tan bueno que esa distinción dejó de importar
Parece que hay un problema con DNS. Me pregunto si me estoy perdiendo de algo
Me sorprende que incluso soporte AVX512. Definitivamente me gustaría intentar agregarlo también a QEMU
Como referencia, los parches relacionados con APX están aquí
El trabajo de Fabrice Bellard siempre sorprende
Gracias al soporte de x86_64, se abre la posibilidad de ejecutar distribuciones modernas de Linux dentro del navegador
El mes pasado lo modifiqué para poder ejecutar TempleOS en JSLinux x86_64 — ring0.holyc.xyz
Corre más rápido que mi demo. No tiene JIT y aun así parece verdadera magia
Usé la imagen Alpine x86_64 de JSLinux durante 4 horas en Chrome
Bajé código con git, compilé paquetes grandes y hasta corrí pruebas, y fue completamente estable
Es 50 veces más lento que nativo, pero igual sorprende muchísimo que una VM tan sólida pueda correr dentro del navegador