JSLinux
(bellard.org)- JSLinux es una lista de VM que permite ejecutar de inmediato Linux y otros sistemas operativos dentro del navegador, con información sobre CPU, UI, VFsync y archivos de configuración
- Los elementos de ejecución se dividen en x86_64, x86 y riscv64, e incluyen Alpine Linux, Buildroot, Fedora 33, Windows 2000 y FreeDOS
- La consola de x86_64 Alpine Linux 3.23.2 incluye soporte para AVX-512 y APX, y x86 Alpine Linux 3.12.0 se ofrece por separado en versiones de consola y X Window
- Los entornos gráficos o X Window están disponibles en Windows 2000, FreeDOS, Alpine Linux, Buildroot y Fedora 33, y algunos menús de X Window se abren con el botón derecho del mouse
- La entrada de riscv64 Fedora 33 incluye una advertencia de que el tiempo de arranque es más largo, y Windows 2000 enlaza a un aviso legal aparte sin acceso a VFsync
Lista de VM ejecutables en el navegador
- JSLinux ofrece una lista de sistemas emulados que ejecutan Linux u otros sistemas operativos en el navegador
- Cada entrada incluye CPU, sistema operativo, interfaz de usuario, disponibilidad de acceso a VFsync, enlace de inicio, archivo de configuración y notas
- La tabla también muestra la disponibilidad de acceso a VFsync y enlaces de configuración relacionados con TEMU
Opciones de ejecución por CPU y sistema operativo
-
x86_64
- Alpine Linux 3.23.2 Console
- Acceso a VFsync disponible
- Archivo de configuración: alpine-x86_64.cfg
- Incluye soporte para AVX-512 y APX
- Alpine Linux 3.23.2 Console
-
x86
- Alpine Linux 3.12.0 Console
- Acceso a VFsync disponible
- Archivo de configuración: alpine-x86.cfg
- Alpine Linux 3.12.0 X Window
- Acceso a VFsync disponible
- Archivo de configuración: alpine-x86-xwin.cfg
- En los menús se usa el botón derecho del mouse
- Windows 2000 Graphical
- Sin acceso a VFsync
- Archivo de configuración: win2k.cfg
- Enlaza a un aviso legal
- FreeDOS VGA Text
- Sin acceso a VFsync
- Archivo de configuración: freedos.cfg
- Alpine Linux 3.12.0 Console
-
riscv64
- Buildroot Linux Console
- Acceso a VFsync disponible
- Archivo de configuración: buildroot-riscv64.cfg
- Buildroot Linux X Window
- Acceso a VFsync disponible
- Archivo de configuración: buildroot-riscv64-xwin.cfg
- En los menús se usa el botón derecho del mouse
- Fedora 33 Linux Console
- Acceso a VFsync disponible
- Archivo de configuración: fedora33-riscv.cfg
- Hay una advertencia de que el tiempo de arranque es más largo
- Fedora 33 Linux X Window
- Acceso a VFsync disponible
- Archivo de configuración: fedora33-riscv-xwin.cfg
- Hay una advertencia de que el tiempo de arranque es más largo, y en los menús se usa el botón derecho del mouse
- Buildroot Linux Console
2 comentarios
Opiniones de Hacker News
Fabrice es realmente bueno creando software autosuficiente, y muchas veces sus resultados terminan teniendo vida propia.
Un ejemplo menos conocido es que el emulador de terminal de JSLinux fue bifurcado varias veces y hoy se conoce como xterm.js, convirtiéndose en el emulador de terminal dominante para embeber en la web.
Ahora estoy creando el verdadero sucesor de JSLinux: compila el kernel y el espacio de usuario de forma nativa a Wasm, por lo que es mucho más rápido, y por supuesto usa xterm.js para la emulación de terminal.
Si te gustan las demos con muchos bugs que probablemente todavía no debería compartir, vale la pena ver https://linux.tombl.dev, aunque por ahora solo hay una shell de busybox, así que hay que acostumbrarse a
echo *en vez dels.Conocía QEMU, ffmpeg, su trabajo relacionado con LTE y QuickJS, pero no sabía que xterm.js también había empezado con él.
attempted to munmapy una advertencia del kernel.Aparece un stack trace con cosas como
WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000,Comm: sh Not tainted 6.1.132, y luego continúa haciavmlinux-NLTKI6YG.wasmyworker-MHWHWELT.js.Parece que la mayor parte fue reescrita, y probablemente para mejor.
https://github.com/xtermjs/xterm.js
https://github.com/chjj/term.js
Lo probé en una MacBook, pero no registró la entrada del teclado.
ps,cat,viyedse crashean todos.No conozco bien el embebido de busybox, así que no sé qué debería hacer.
Fabrice es increíble. La cantidad de cosas que ha creado es realmente difícil de creer.
Si yo hubiera creado solo una de sus cosas, por ejemplo ffmpeg, QEMU o tinyc, habría presumido de eso toda la vida, pero él simplemente sigue hackeando otras cosas geniales.
Teléfonos, sistemas operativos, entornos de escritorio, países, tiendas de apps, todo.
No hay tantas máquinas virtuales que corran en el navegador.
https://copy.sh/v86/
https://webvm.io/
https://bellard.org/jslinux/
https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce)
https://www.pcjs.org/ soporta mucho hardware y muchos sistemas operativos (https://github.com/jeffpar/pcjs)
Para Mac OS también están https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo... y https://jamesfriend.com.au/pce-js/pce-js-apps/.
https://amiga.oszx.co/
https://www.file-hunter.com/AMIGA/
https://www.file-hunter.com/MSX/ es MSX vía WebMSX.
Al ver el extremo de desarrolladores increíblemente productivos, resulta un contraste interesante con dogmas como “una función o un archivo nunca debe superar x líneas”
quickjs.ctiene 50 mil líneas y también hay funciones de cientos de líneashttps://github.com/bellard/quickjs/blob/master/quickjs.c
Claro que, según el caso, otro enfoque puede ser el correcto
Yo también tengo una memoria de trabajo bastante grande, y recién después me di cuenta de que mis límites de tamaño para archivos y funciones eran mucho más altos que los de otros
Ese tipo de dogmas hacen falta cuando varias personas tienen que leer y escribir el mismo archivo
Al principio intimida, pero con el editor adecuado es sorprendentemente fácil trabajar. Eso sí, muchos editores se traban con archivos tan grandes
El archivo es muy grande, pero está ordenado hasta cierto punto por significado, así que, por ejemplo, al agregar un nuevo método de iterador, el código relacionado queda cerca y es fácil trabajar
También depende del lenguaje que uses. Por ejemplo, la JVM puede no hacer inline de funciones que superen cierto umbral de cantidad de instrucciones de bytecode
Un programador que aplica dogmas al pie de la letra puede ser perjudicial
Kohei Tokunaga está creando la siguiente generación de esta familia
https://ktock.github.io/container2wasm-demo/
Usa redes en el navegador basadas en
fetchde Emscripten o un proxy WebSocket compatible con POSIXhttps://ktock.github.io/container2wasm-demo/amd64-debian-was...
https://github.com/container2wasm/container2wasm?tab=readme-...
Toqué Windows 2000 por primera vez en 20 años. Sé que la nostalgia puede nublar la vista, pero con esa UI volvería ahora mismo
Fue un verdadero gusto ver una barra de tareas sin desorden y un menú Inicio simple, no lleno de recomendaciones inútiles y anuncios
Ahora es una mezcla de cuatro generaciones de toolkits de GUI, donde algunas interfaces tienen un estilo y otras, otro
“Windows 2000 Server named peak Microsoft. Readers say it's all been downhill since Clippy”
https://www.theregister.com/2025/04/11/windows_2000_best_mic...
https://news.ycombinator.com/item?id=43653421
Siento que el código abierto, por su propia naturaleza, alinea sus intereses con los del usuario y tiene mecanismos para impedir la enshittification
¿Alguien sabe cómo gana dinero Fabrice Bellard? Sus resultados de código abierto son realmente asombrosos
Es difícil incluso comparar si hay alguien de un nivel parecido. Me imagino que VMware intentó contratarlo, o que Google quiso llevarlo para trabajar en códecs de video, V8, renderizado de Chromium o ffmpeg
Parece que de Francia salen bastantes artistas del software o colaboradores individuales muy talentosos, creativos y productivos
No sé si se debe a algún factor francés, al sistema educativo como las Écoles, o a otra razón, pero llama la atención
La tecnología francesa tenía una reputación parecida a la calidad de los viejos autos Renault, pero en la práctica no lo vi así. Con Renault y Citroen, más bien terminé impresionado
En cambio, trabajar con ingenieros de software alemanes fue difícil: tenían una actitud muy fuerte de “si no lo hicimos nosotros, no sirve”. Es solo mi generalización, claro
El problema del ecosistema tecnológico europeo es simple. No sabemos vender y optimizamos para la eficiencia de recursos. “Salario competitivo” suele significar que bajo ninguna circunstancia pagarán por encima del precio de mercado
Estados Unidos optimiza para el crecimiento e intenta amortizar los costos mediante crecimiento, aun aceptando salarios más altos
Por último, de donde vengo muchas veces se burlan diciendo que Francia fue arruinada por la inmigración. Puede existir esa perspectiva, pero también es cierto que Francia atrajo fuga de cerebros desde sus colonias y consiguió personas muy capaces y productivas
Mi director de maestría también era de Costa de Marfil, y en Bootlin trabajé con ingenieros de primer nivel con nombres no francófonos
En https://barebox.org/webdemo están usando JSLinux para que los posibles usuarios puedan ver la comodidad de la shell del bootloader sin tener que flashearlo en hardware real.
Me da gusto ver varios forks mencionados aquí, y tendría que revisar cuál corre mejor bareDOOM y si alguno tiene sonido funcionando.
JSLinux sirvió de inspiración al crear Endor (https://endor.dev), y su trabajo con QEMU también está sirviendo como base para muchos proyectos de navegador relacionados con Wasm.
La configuración de CORS está mal, así que para que funcione correctamente hay que entrar a https://bellard.org/jslinux/ en lugar del enlace https://www.bellard.org/jslinux/ .