Ce mec est un malade ! (dans le bon sens)
:ccool:
Version imprimable
Ce mec est un malade ! (dans le bon sens)
:ccool:
Notons également que l'auteur de JSLinux est aussi celui de QEmu :)
Impressionnant, les perfs de la chose sont vraiment impressionnante.
A quand le bindings WebGL pour lancer xorg dans un navigateur ? :D
j'ai du mal à comprendre comment ça marche :aie:
- les fichier du system sont ou ?
- les fichier créer sont ou ?
- C'est écrit en javascript, mais quel partie ?
- comment du javascript peut elle lancer une distrib linux ?
Je dois dire que je suis un peux largué sur ce coup là :cry:
cf mon précédent message
il y a 2 scripts javascripts : le premier simule le terminal (term.js), le second émule totalement un processeur (cpux86.js dans le même genre que qemu)
si tu regardes le second script, tu as tout à la fin une fonction start() :
C'est cette fonction start qui charge d'une part, le noyau vmlinux26.bin qui a été compilé à part, et d'autre part, le filesystem contenu dans root.bin (et aussi un autre truc linuxstart.bin que je ne sais pas à quoi il sert :aie: visiblement, "démarrer" le système).Code:
1
2
3
4
5
6
7
8
9 function start() { var Hf, i, start, If, Jf; ... ya.load_binary("vmlinux26.bin", 0x00100000); Jf = ya.load_binary("root.bin", 0x00400000); start = 0x10000; ya.load_binary("linuxstart.bin", start); ... }
Tu peux d'ailleurs télécharger ces 3 fichiers (et également les 2 javascript) et mettre tout ça chez toi et ça marchera pareil (je l'ai d'ailleurs fait).
Ensuite, j'avoue que je suis absolument incapable de comprendre comment ça va plus loin :) j'imagine que le script construit un objet qui va être ta machine virtuelle et que, d'une manière ou d'une autre, ce petit code de 7000 lignes à peine arrive à interpréter le noyau qui va à son tour amorcer linux et le filesystem... mais franchement, pour moi, c'est de la magie noire ;)
si tu télécharges ce filesystem sur un linux, tu peux parfaitement le monter et le modifier :
Code:
1
2
3
4 $ sudo mount root.bin /mnt/jslinux/ Password: $ ls /mnt/jslinux/ bin dev etc lib linuxrc lost+found mnt proc root sbin tmp usr
Edit :
:merci:
j'ai compris un peu plus.
Mais j'avoue que ça dépasse mes compétances là.. :calim2:
En fait, il a coder un emulateur x86 suffisamment complet pour exécuter du code natif x86 sur un environnement javascript :scarymov::scarymov:.
Ce type débarque d'une autre planète. :aie:Citation:
Some of the code is inspired from my x86 dynamic translator present in QEMU, but there are important differences because here it is an interpreter. The CPU is close to a 486 compatible x86 without FPU. The lack of FPU is not a problem when running Linux as Operating System because it contains a FPU emulator. In order to be able to run Linux, a complete MMU is implemented. The exact restrictions of the emulated CPU are:
No FPU/MMX/SSE
No segment limit and right checks when accessing memory (Linux does not rely on them for memory protection, so it is not an issue. The x86 emulator of QEMU has the same restriction).
No CS/DS/ES/SS segment overrides. FS/GS overrides are implemented because they are needed for Thread Local Storage in Linux.
A few seldom used instructions are missing (BCD operations, BOUND, ...).
No single-stepping
No real mode
No 16 bit protected mode (although most 16 bit instructions are present because they are needed to run 32 bit programs).
Most of these restrictions are easy to remove, but I decided to implement the strict minimum to be able to use a recent Linux kernel and its user applications.
Il y avait déjà des Box DOS en ligne, permettant de jouer à de vieux jeux.
Jusqu'à maintenant elles tournaient en Flash, je suppose que bientôt ça marchera même sans Flash.
(Jeu : réaliser cela en installant DOSBox sous linux tournant sur un x86 émulé par JavaScript. Une fois que c'est fait, Faire tourner un navigateur dedans. Et pousser ce navigateur à appeler la même page.)
tres impressionnant.
Toutefois, la vitesse dépend largement du pc qui fait tourner le navigateur... sur mon petit netbook, ça reste lent ...
Bonsoir,
Excusez moi j'ai pas bien compris ce que cela veut dire, c'est quoi le principe, et quels sont les possibilités 8O
Je l'ai testé, et je comprends pas d'où vient l'OS où on fait le test ?
Dans un ramdisk (d'après les informations affichées au boot)
Au moins le terminal et l'émulateur. Peut-être même que le noyau a été traduit en Javascript.
Ce n'est pas une distribution. Mais si le noyau a été traduit en Javascript, c'est assez "facile".
Il n'y a pas d'application directe, mais c'est un hack qui mérite d'être souligné. C'est déjà une opération assez délicate en C, mais en JS, c'est véritablement un exploit.
C'est un Linux avec Busybox.
ce truc est hallucinant. On voit passer des messages binaires dans firebug, qui l'eut cru en web ?
En fait ... Chrome OS est juste devant nous.
Un OS dans le navigateur, comme nous l'avons là. Il n'y a plus rien besoin sur la machine (juste le minimum pour se connecter à internet, faire tourner du HTML / JS / CSS) et hop, on passe sur une émulation plus ou moins distante de l'OS.
Là je suis vraiment sur le c** si vous me permettez l'expression. 8O
Je dis chapeau M. Fabrice Bellard :ccool:Code:
1
2
3
4
5
6 / # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 5 model : 4 model name : Pentium MMX
voir tous les messages déjà postés...
http://www.developpez.net/forums/d10...b/#post5993135
http://www.developpez.net/forums/d10...b/#post5993195
C'est vraiment un géni. L'intérêt est je trouve titanesque. Imaginez tous les programmes écrit en C / C++ .... peuvent dorénavant fonctionner sur une application web... un peu ralentit certes mais tout de même. L'intérêt est identique à celui d'une VM. Inutile mais tellement pratique que tout les professionnels en ont besoin pour leurs tests.
On peu maintenant imaginer un IDE C/C++ totalement disponible sur une application web.
Il me semble que Fabrice Bellard avait déjà réussit l'exploit de battre le record du nombre de décimal de PI sur un simple PC ridiculisant les super-ordinateurs... Inutile mais qui montre que l'on exploite très mal la puissance de nos machines... Ou que la marge de progression est gigantesque dans le développement.
Bonjour,
Oui belle performance, le suite logique de cette émulateur NES en javascript http://benfirshman.com/projects/jsnes/...
Cordialement.
Non, les performances ne sont vraiment pas au rendez-vous. On peut imaginer faire tourner de vieux programmes de l'époque du DOS, mais vraiment du très, très vieux. Sinon, techniquement ça marche mais c'est infiniment trop lent.
Les VMs n'émulent pas le microprocesseur : elles émulent les périphériques, l'écran, une quantité précise de mémoire et "l'impression" d'être le seul OS tournant dans une machine qui lui est entièrement dédiée. Le processeur n'est pas émulé, les contrôles mémoire le sont à peine, etc. Niveau performances c'est pas très différent de pas de VM du tout : ce sont les accès périphériques, qui ralentissent, pas l'exécution.