4 puntos por GN⁺ 2025-04-15 | 2 comentarios | Compartir por WhatsApp
  • 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

2 comentarios

 
GN⁺ 2025-04-15
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 de ls.

    • Suelo decir que Fabrice crea proyectos paralelos que otros mantendrían toda la vida.
      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.
    • Cualquier comando que ejecuto muestra algo como attempted to munmap y 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 hacia vmlinux-NLTKI6YG.wasm y worker-MHWHWELT.js.
    • Me trae recuerdos. Hace tiempo que no lo veía, y me alegra que un fork de mi fork de hace 12 años siga vivo y bien.
      Parece que la mayor parte fue reescrita, y probablemente para mejor.
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • Genial. Si tiene mejor eficiencia energética que JSLinux y puede correr también en iOS, quizá sea una buena alternativa a A-Shell o iSH.
      Lo probé en una MacBook, pero no registró la entrada del teclado.
    • ¿Hay algún comando que funcione? ps, cat, vi y ed se 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.

    • ¿Y si simplemente averiguamos qué quiere y se lo damos? A cambio, probablemente reescribiría bien todas las cosas rotas que tenemos.
      Teléfonos, sistemas operativos, entornos de escritorio, países, tiendas de apps, todo.
    • Me cae bien este tipo. Su QEMU se usa tanto que la mitad del desarrollo Android del mundo se volvió más fácil gracias a él, y ese impacto sigue creciendo.
    • LZEXE, que puede resultar familiar para quienes usaron DOS, también fue escrito por la misma persona.
    • Me da curiosidad cómo elige en qué trabajar. No sé si simplemente sigue lo que le interesa.
  • 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/.

  • 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.c tiene 50 mil líneas y también hay funciones de cientos de líneas
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    Claro que, según el caso, otro enfoque puede ser el correcto

    • La respuesta es simple. Bellard puede recordar todo el contexto de 50 mil líneas, pero la mayoría no puede
      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
    • Estoy trabajando en esa base de código, y la bifurcamos como QuickJS-ng
      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
    • Porque la gente con la que trabajas no es Fabrice. Es más fácil decir “no hagas X en absoluto” que explicar cuándo es seguro romper las reglas
      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 buen ejemplo: el recolector de basura de .NET es un único archivo C++ de 54 mil líneas
    • A veces, una sola función larga que hace bien una cosa es mejor que varias funciones fuertemente acopladas y difíciles de razonar
      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 fetch de Emscripten o un proxy WebSocket compatible con POSIX
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • 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

    • No tengo ningún deseo de volver a usar Windows 2000, pero es interesante ver una versión de Windows donde la UI era consistente
      Ahora es una mezcla de cuatro generaciones de toolkits de GUI, donde algunas interfaces tienen un estilo y otras, otro
    • Artículo relacionado:
      “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
    • Intenté instalar Visual Basic 6 ahí, pero ni siquiera pude pasar de descargar la ISO por errores SSL en el Firefox instalado. Una lástima
    • Esta es precisamente la razón por la que uso Xfce desde al menos 2010. Sigue funcionando de la misma manera
      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

    • Bootlin es una empresa francesa y una contribuidora importante al código abierto. Trabajé con ellos y los recomiendo
      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
    • ¿Pueden nombrar personas comparables a Fabrice Bellard?
  • 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.

    • ¿Hay detalles públicos sobre cómo están implementados los enfoques de máquinas virtuales, contenedores y Wasm nativo?
 
ndrgrd 2025-04-16

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/ .