4 points par GN⁺ 2025-04-15 | 2 commentaires | Partager sur WhatsApp
  • JSLinux propose une liste de VM permettant d’exécuter directement Linux et d’autres systèmes d’exploitation dans le navigateur, avec possibilité de consulter aussi le CPU, l’UI, VFsync et les fichiers de configuration
  • Les éléments disponibles sont répartis entre x86_64, x86 et riscv64, et incluent Alpine Linux, Buildroot, Fedora 33, Windows 2000 et FreeDOS
  • La console x86_64 Alpine Linux 3.23.2 inclut la prise en charge de AVX-512 et APX, tandis que x86 Alpine Linux 3.12.0 est proposé séparément en versions console et X Window
  • Un environnement graphique ou X Window est disponible pour Windows 2000, FreeDOS, Alpine Linux, Buildroot et Fedora 33, et certains menus X Window s’ouvrent avec le bouton droit de la souris
  • L’entrée riscv64 Fedora 33 affiche un avertissement indiquant que le démarrage est plus long, et Windows 2000 renvoie vers une clause de non-responsabilité distincte sans accès VFsync

Liste des VM exécutables dans le navigateur

  • JSLinux fournit une liste de systèmes émulés permettant d’exécuter Linux ou d’autres systèmes d’exploitation dans le navigateur
  • Chaque entrée comprend le CPU, le système d’exploitation, l’interface utilisateur, la disponibilité de l’accès à VFsync, un lien de démarrage, le fichier de configuration et des remarques
  • Le tableau indique également la disponibilité de l’accès à VFsync ainsi que des liens de configuration liés à TEMU

Éléments disponibles par CPU et système d’exploitation

2 commentaires

 
GN⁺ 2025-04-15
Commentaires sur Hacker News
  • Fabrice est vraiment doué pour créer des logiciels autosuffisants, et il arrive souvent que le résultat acquière une vie propre.
    Exemple moins connu : l’émulateur de terminal de JSLinux a été forké plusieurs fois et est aujourd’hui connu sous le nom de xterm.js, devenu l’émulateur de terminal de référence intégrable dans le Web.
    Je travaille maintenant sur un véritable successeur de JSLinux : le noyau et l’espace utilisateur sont compilés nativement en Wasm, ce qui le rend beaucoup plus rapide, et pour l’émulation de terminal il utilise évidemment xterm.js.
    Si vous aimez les démos pleines de bugs qu’on ne devrait sans doute pas encore partager, https://linux.tombl.dev vaut le détour, mais pour l’instant il n’y a qu’un shell busybox, donc il faut être habitué à echo * plutôt qu’à ls.

    • On dit souvent que Fabrice crée des side projects que d’autres maintiendront toute leur vie.
      Je connaissais QEMU, ffmpeg, ses travaux liés au LTE et QuickJS, mais je ne savais pas que xterm.js venait aussi de lui.
    • Quelle que soit la commande exécutée, on obtient attempted to munmap et un avertissement du noyau comme ci-dessous.
      Une stack trace apparaît avec des lignes comme WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000, Comm: sh Not tainted 6.1.132, puis elle remonte vers vmlinux-NLTKI6YG.wasm et worker-MHWHWELT.js.
    • Ça me rappelle des souvenirs. Je n’avais pas regardé depuis un moment, et ça fait plaisir de voir qu’un fork du fork que j’avais fait il y a 12 ans est encore bien vivant.
      On dirait que la majeure partie a été réécrite, et c’est probablement mieux ainsi.
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • Génial. Si c’est plus économe en énergie que JSLinux et que ça peut tourner sur iOS, cela pourrait devenir une bonne alternative à A-Shell ou iSH.
      J’ai essayé sur un MacBook, mais les frappes au clavier n’étaient pas prises en compte.
    • Y a-t-il des commandes qui fonctionnent ? ps, cat, vi, ed plantent toutes.
      Je ne connais pas bien l’intégration de busybox, donc je ne sais pas quoi faire.
  • Fabrice est impressionnant. La quantité de choses qu’il a créées est tout simplement incroyable.
    Si j’avais créé ne serait-ce qu’une seule de ses réalisations, par exemple ffmpeg, QEMU ou tinyc, je m’en serais vanté toute ma vie, mais lui continue simplement à hacker d’autres trucs géniaux.

    • Et si on trouvait simplement ce qu’il veut et qu’on le lui donnait ? En retour, il réécrirait probablement correctement tous nos trucs cassés.
      Les téléphones, les systèmes d’exploitation, les environnements de bureau, les pays, les app stores, tout.
    • J’aime bien cette personne. Son QEMU est tellement largement utilisé qu’il a facilité la moitié du développement Android dans le monde, et son impact ne fait que grandir.
    • LZEXE, qui peut être familier à ceux qui ont utilisé DOS, a aussi été écrit par la même personne.
    • Je me demande comment il choisit ses sujets de travail. Peut-être qu’il suit simplement ce qui l’intéresse.
  • Il n’y a pas tant de machines virtuelles qui tournent dans le navigateur.
    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/ prend en charge beaucoup de matériel et de systèmes d’exploitation (https://github.com/jeffpar/pcjs)
    Côté Mac OS, il y a aussi https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo..., https://jamesfriend.com.au/pce-js/pce-js-apps/

  • Quand on regarde l’extrême des développeurs incroyablement productifs, cela contraste de façon intéressante avec des dogmes du type « une fonction ou un fichier ne doit jamais dépasser x lignes »
    quickjs.c fait 50 000 lignes et contient aussi des fonctions de plusieurs centaines de lignes
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    Bien sûr, selon le contexte, d’autres approches peuvent être les bonnes

    • La réponse est simple. Bellard peut garder en mémoire 50 000 lignes de contexte, mais la plupart des gens ne le peuvent pas
      J’ai moi aussi une mémoire de travail assez grande, et ce n’est que plus tard que j’ai compris que mes limites de taille de fichiers et de fonctions étaient bien plus élevées que celles des autres
      Ce genre de dogme devient nécessaire quand plusieurs personnes doivent lire et écrire dans le même fichier
    • Je travaille sur cette base de code, et nous l’avons forkée sous le nom QuickJS-ng
      Au début, c’est intimidant, mais avec le bon éditeur, c’est étonnamment facile d’y travailler. Cela dit, beaucoup d’éditeurs rament avec des fichiers aussi gros
      Le fichier est très volumineux, mais il est organisé plus ou moins par signification, si bien que, par exemple, quand on ajoute une nouvelle méthode d’itérateur, le code pertinent est regroupé à proximité et le travail est facilité
    • C’est parce que les gens avec qui l’on travaille ne sont pas Fabrice. Il est plus facile de dire « ne faites jamais X » que d’expliquer quand il est sûr d’enfreindre la règle
      Cela dépend aussi du langage utilisé. Par exemple, la JVM peut refuser d’inliner une fonction si le nombre d’instructions bytecode dépasse un certain seuil
    • Un bon exemple : le garbage collector de .NET est un unique fichier C++ de 54 000 lignes
    • Une longue fonction qui fait bien une seule chose peut parfois être préférable à plusieurs fonctions fortement couplées et difficiles à raisonner
      Les programmeurs qui appliquent les dogmes à la lettre peuvent être nuisibles
  • Kohei Tokunaga est en train de construire la génération suivante de cette lignée
    https://ktock.github.io/container2wasm-demo/
    Il utilise le réseau dans le navigateur basé sur fetch d’Emscripten ou un proxy WebSocket compatible POSIX
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • J’ai touché à Windows 2000 pour la première fois en 20 ans. Je sais que la nostalgie peut brouiller le jugement, mais avec cette UI, j’y retournerais tout de suite
    J’ai vraiment apprécié la barre des tâches sans bazar et le menu Démarrer simple, pas rempli de recommandations inutiles et de pubs

    • Je n’ai absolument aucune envie de réutiliser Windows 2000, mais c’est intéressant de voir une version de Windows où l’UI était cohérente
      Aujourd’hui, c’est un méli-mélo de quatre générations de toolkits GUI, avec certaines interfaces dans un style et d’autres dans un autre
    • Article lié :
      “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
    • J’ai essayé d’y installer Visual Basic 6, mais à cause d’erreurs SSL dans le Firefox installé, je n’ai même pas réussi à passer l’étape du téléchargement de l’ISO. Dommage
    • C’est précisément pour cela que j’utilise Xfce depuis au moins 2010. Il fonctionne toujours de la même manière
      J’ai le sentiment que l’open source est par nature aligné avec les intérêts des utilisateurs, et qu’il dispose de mécanismes pour empêcher l’enshittification
  • Quelqu’un sait-il comment Fabrice Bellard gagne sa vie ? Ses productions open source sont vraiment stupéfiantes
    Il est même difficile de savoir s’il existe des gens d’un niveau comparable. J’imagine que VMware a dû essayer de le recruter, ou que Google a voulu l’attirer du côté des codecs vidéo, de V8, du rendu de Chromium ou de ffmpeg

  • Il semble qu’il sorte de France pas mal d’artistes logiciels ou de contributeurs individuels extrêmement talentueux, créatifs et productifs
    Je ne sais pas si c’est un facteur spécifiquement français, le système éducatif des Écoles, ou autre chose, mais cela se remarque

    • Bootlin est une entreprise française et un contributeur open source important. J’ai travaillé avec eux et je les recommande
      La technologie française avait une réputation comparable à la qualité des vieilles Renault, mais en pratique je ne l’ai pas constaté ainsi. Renault et Citroën m’ont même plutôt impressionné
      À l’inverse, travailler avec des ingénieurs logiciel allemands a été difficile : l’attitude « si ce n’est pas fait chez nous, ça ne va pas » y était très forte. Ce n’est bien sûr que ma généralisation
      Le problème de l’écosystème tech européen est simple : nous ne savons pas vendre et nous optimisons pour l’efficacité des ressources. « Salaire compétitif » signifie souvent qu’on ne paiera en aucun cas au-dessus du prix du marché
      Les États-Unis optimisent pour la croissance et acceptent des salaires plus élevés, en cherchant à amortir le coût par cette croissance
      Enfin, là d’où je viens, beaucoup se moquent de la France en disant qu’elle a été ruinée par l’immigration. On peut avoir ce point de vue, mais il est aussi vrai que la France a attiré une fuite des cerveaux venue de ses anciennes colonies, obtenant ainsi des personnes très compétentes et productives
      Mon directeur de master venait lui aussi de Côte d’Ivoire, et chez Bootlin j’ai travaillé avec des ingénieurs de tout premier plan dont les noms n’étaient pas francophones
    • Peut-on citer des personnes comparables à Fabrice Bellard ?
  • Sur https://barebox.org/webdemo, JSLinux est utilisé pour permettre aux utilisateurs potentiels de voir la commodité du shell du bootloader sans avoir à le flasher sur du matériel réel
    Content de voir les différents forks mentionnés ici ; il faudra vérifier lequel fait le mieux tourner bareDOOM, et s’il y en a un où le son fonctionne

  • JSLinux a inspiré la création d’Endor (https://endor.dev), et son travail sur QEMU sert aussi de base à de nombreux projets navigateur liés à Wasm

    • Existe-t-il des informations publiques détaillées sur la manière dont les machines virtuelles, les conteneurs et les approches natives Wasm sont implémentés ?
 
ndrgrd 2025-04-16

La configuration CORS est incorrecte, donc pour que cela fonctionne correctement, il faut accéder à https://bellard.org/jslinux/ et non au lien https://www.bellard.org/jslinux/.