Linux en JavaScript

Fabrice Bellard vient de mettre en ligne le Javascript PC Emulator qui émule un ordinateur sous Linux. Il n’y a pas d’interface graphique. Tout se passe en ligne de commande. Le but est avant tout de montrer ce qu’il est possible de faire avec les nouveaux moteurs JavaScript. Le résultat est très impressionnant.

Le PC émulé est une configuration du début des années 90. Le processeur est proche d’un 486 dépourvu d’une unité de calcul en virgule flottante. Ce n’est pas un problème en soi, car le noyau Linux 2.6.20 recompilé pour l’occasion peut émuler un FPU. Il n’y a pas d’émulation de la couche réseau, mais il est possible d’utiliser un port série.

En plus de montrer les progrès réalisés par les moteurs JavaScript qui sont capables de choses beaucoup plus complexes, on peut imaginer utiliser cet émulateur comme benchmark pour comparer le temps que met Linux à se lancer. Ce système pourrait aussi être la base d’un émulateur de jeux DOS.

Le système ne fonctionne pour l’instant que sous Firefox 4 et Chrome. L’émulateur est taillé pour les moteurs Jaeger Monkey du premier et V8 du second. Le moteur JavaScript de Google est néanmoins deux fois plus lent que celui de Mozilla, selon le développeur qui n’a pas pour l’instant d’explications.

Comme le rappellent nos confrères de Generation-NT par qui nous avons découvert ce bijou, Fabrice Bellard est un programmeur français renommé à qui nous devons, entre autres, FFmpeg, QEMU et TCC (Tiny C Compiler).

Posez une question dans la catégorie Les news : vos réactions du forum
Cette page n'accepte plus de commentaires
15 commentaires
    Votre commentaire
  • fitfat
    Le moteur JS de Firefox 4 est SpiderMonkey. JaggerMonkey n'est qu'un des moteurs de compilation JIT qui le compose (avec TraceMonkey depuis FF3.1 et, d'ici 2012, IonMonkey, probablement pour FF8).
    En ce qui concerne les perfs, c'est probablement pasqu'un émulateur permet d'extraire facilement des arbres de trace et ainsi exploiter TraceMonkey à plein régime (TraceMonckey utilise un compilateur (NanoJIT) plus lent mais qui produit un code nettement plus optimisé que le Nitro de V8).
    1
  • Bucher0n
    Surpuissant !
    0
  • Ctrolon
    Je dois avouer que je suis bluffé... je critiquais, il y peu encore, Java / Javascript mais force est de constater que les bons programmeurs peuvent en faire des merveilles.
    Chapeau bas.
    0