- JSLinux, qui permet d’exécuter directement Linux et d’autres systèmes d’exploitation dans un navigateur web, prend désormais en charge la nouvelle architecture x86_64
- Prise en charge nouvellement ajoutée d’AVX2, d’AVX-512 et d’APX, ce qui en fait actuellement le seul émulateur public de système complet x86 à prendre en charge APX
- Basé sur Alpine Linux 3.23.2, avec les extensions d’instructions AVX-512 et Intel APX
- En plus des systèmes existants basés sur x86, RISC-V, l’exécution en environnement 64 bits devient également possible
- Chaque système propose une interface console ou X Window, et certains prennent en charge l’accès aux fichiers via VFsync
- Avec les progrès des technologies de virtualisation dans le navigateur, l’expérimentation sur les systèmes d’exploitation et la mise en place d’environnements de test deviennent encore plus simples
Aperçu de JSLinux
- JSLinux est un émulateur web permettant d’exécuter Linux ou d’autres systèmes d’exploitation dans le navigateur
- Les utilisateurs peuvent lancer une machine virtuelle directement depuis une page web, sans installation supplémentaire
- Il est possible de choisir parmi différentes architectures CPU et configurations de systèmes d’exploitation
Liste des systèmes pris en charge
- x86_64 : version console d’Alpine Linux 3.23.2 disponible
- x86 : prise en charge de divers systèmes comme Alpine Linux 3.12.0, Windows 2000 et FreeDOS
- riscv64 : prise en charge de Buildroot Linux et Fedora 33
- Chaque système dispose d’un lien de démarrage et peut être configuré via un fichier de configuration TEMU
- Certains systèmes peuvent être reliés à un système de fichiers externe via VFsync
- L’ensemble des configurations est développé et maintenu par Fabrice Bellard
3 commentaires
Il faut saluer son créateur, Fabrice Bellard, à chaque fois qu’un article connexe sort (né en 1972)
En 1987, à 15 ans, il développe LZEXE, un exécutable compacteur, en assembleur
En 2000, il développe FFmpeg et, la même année, un compilateur C de moins de 4 Ko, remportant ainsi l’IOCCC
En 2005, il présente QEMU
En 2011, il publie JSLinux et le fait évoluer jusqu’à aujourd’hui
« Gagnez une fortune et prenez votre retraite »
La prise en charge du x86 64 bits a été annoncée en janvier, et la mise à jour cette fois-ci apporte la prise en charge d’AVX2, d’AVX-512 et d’APX.
Commentaires Hacker News
Ce que j’ai le plus envie de faire, c’est d’utiliser un moteur Linux en WASM pour faire tourner directement un OS virtuel dans le navigateur et y exécuter un agent de code
Le connecter à un agent capable d’utiliser Bash et les outils Linux, comme Claude Code ou Codex CLI, serait vraiment intéressant
Je pense que le navigateur est le meilleur environnement de sandbox. Si on pouvait faire tourner une boucle d’agent au-dessus de WebAssembly Linux, ce serait un super tour de force
J’ai déjà expérimenté avec la démo v86, mais je ne suis pas encore allé jusqu’à connecter un agent. On peut envoyer des commandes Linux via un champ de saisie texte
Cela dit, les performances étaient un peu limitées, donc je n’ai pas creusé davantage
La démo full stack est sur vitedemo.browserpod.io, et notre travail précédent est visible sur webvm.io
Par curiosité, j’ai lancé le benchmark Primes dans Chrome sur un Mac Mini M1 pour chacun des environnements x86_64, x86, riscv64
RISC-V était bien plus efficace en émulation que x86 — compilation plus rapide, code plus petit et exécution plus rapide
Cela dit, ce n’est pas une comparaison totalement équitable, car les versions de gcc différaient (15.2.0 vs 9.3.0 vs 7.3.0)
Code de référence
Hors sujet, mais revoir l’interface de Windows 2000 me fait vraiment plaisir. J’ai l’impression que les UI modernes sont vraiment affreuses
Malheureusement, le code source de la couche d’émulation x86 64 bits et sa configuration de build n’ont pas été publiés
Si vous voulez une version plus open source, container2wasm mérite le détour
Je me demande si JSLinux est toujours un interpréteur, ou s’il fait désormais de la compilation JIT
Ou peut-être que le JIT des moteurs JS est devenu si performant que la distinction n’a plus beaucoup de sens
Il semble y avoir un problème avec le DNS. Je me demande si j’ai raté quelque chose
Je suis surpris qu’il supporte jusqu’à AVX512. J’aimerais vraiment voir ça ajouté à QEMU aussi
À titre de référence, les patchs liés à APX sont ici
Le travail de Fabrice Bellard est toujours impressionnant
Grâce au support de x86_64, cela ouvre la possibilité d’exécuter des distributions Linux modernes dans le navigateur
Le mois dernier, je l’ai modifié pour pouvoir faire tourner TempleOS sur JSLinux x86_64 — ring0.holyc.xyz
Ça tourne plus vite que ma démo. Sans même avoir de JIT, ça ressemble vraiment à de la magie
J’ai utilisé l’image Alpine x86_64 de JSLinux dans Chrome pendant 4 heures
J’y ai récupéré du code avec git, compilé de gros paquets, puis lancé les tests, et c’était totalement stable
C’est 50 fois plus lent que le natif, mais voir une VM aussi robuste tourner dans un navigateur reste vraiment impressionnant