IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Le noyau Linux débarque sur les navigateurs Web


Sujet :

JavaScript

  1. #21
    Membre très actif Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Par défaut
    Ce mec est un malade ! (dans le bon sens)

  2. #22
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Notons également que l'auteur de JSLinux est aussi celui de QEmu

  3. #23
    Membre très actif Avatar de Elepole
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 504
    Par défaut
    Citation Envoyé par TNT89 Voir le message


    rm -rf / puis F5 puis rm -rf / puis F5 puis...
    Rien que pour sa c’est l'invention du siècle.

  4. #24
    Membre très actif Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Par défaut
    Impressionnant, les perfs de la chose sont vraiment impressionnante.

    A quand le bindings WebGL pour lancer xorg dans un navigateur ?

  5. #25
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    j'ai du mal à comprendre comment ça marche

    - 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à
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  6. #26
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    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() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    ...
    }
    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 visiblement, "démarrer" le système).

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    Citation Envoyé par Golgotha Voir le message
    - les fichier du system sont ou ? << dans l'image root.bin
    - les fichier créer sont ou ? << dans la mémoire de ton PC : ils sont perdus si tu fermes la fenêtre
    - C'est écrit en javascript, mais quel partie ? << le terminal et l'émulateur du processeur
    - comment du javascript peut elle lancer une distrib linux ? << parce que le javascript émule une machine, et que du coup, comme tout émulateur, c'est capable de lancer du code machine

  7. #27
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut


    j'ai compris un peu plus.

    Mais j'avoue que ça dépasse mes compétances là..
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  8. #28
    Membre très actif Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Par défaut
    En fait, il a coder un emulateur x86 suffisamment complet pour exécuter du code natif x86 sur un environnement javascript .

    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.
    Ce type débarque d'une autre planète.

  9. #29
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    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.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #30
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    tres impressionnant.

    Toutefois, la vitesse dépend largement du pc qui fait tourner le navigateur... sur mon petit netbook, ça reste lent ...

  11. #31
    Membre très actif
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Par défaut
    Bonsoir,

    Excusez moi j'ai pas bien compris ce que cela veut dire, c'est quoi le principe, et quels sont les possibilités

    Je l'ai testé, et je comprends pas d'où vient l'OS où on fait le test ?

  12. #32
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    - les fichier du system sont ou ?
    - les fichier créer sont ou ?
    Dans un ramdisk (d'après les informations affichées au boot)
    Citation Envoyé par Golgotha Voir le message
    - C'est écrit en javascript, mais quel partie ?
    Au moins le terminal et l'émulateur. Peut-être même que le noyau a été traduit en Javascript.
    Citation Envoyé par Golgotha Voir le message
    - comment du javascript peut elle lancer une distrib linux ?
    Ce n'est pas une distribution. Mais si le noyau a été traduit en Javascript, c'est assez "facile".


    Citation Envoyé par santana2006 Voir le message
    Excusez moi j'ai pas bien compris ce que cela veut dire, c'est quoi le principe, et quels sont les possibilités
    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.

    Citation Envoyé par santana2006 Voir le message
    Je l'ai testé, et je comprends pas d'où vient l'OS où on fait le test ?
    C'est un Linux avec Busybox.

  13. #33
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    ce truc est hallucinant. On voit passer des messages binaires dans firebug, qui l'eut cru en web ?

  14. #34
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    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.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #35
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Par défaut
    Là je suis vraiment sur le c** si vous me permettez l'expression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    / # cat /proc/cpuinfo                                                            
    processor       : 0                                                             
    vendor_id       : GenuineIntel                                                  
    cpu family      : 5                                                             
    model           : 4                                                             
    model name      : Pentium MMX
    Je dis chapeau M. Fabrice Bellard

  16. #36
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par ProgVal Voir le message
    Peut-être même que le noyau a été traduit en Javascript.
    Non, le noyau est un pur binaire x86. On pourrait le booter directement sur nos machines (à condition, apparemment, d'adapter un peu Grub pour ça.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #37
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Citation Envoyé par santana2006 Voir le message
    Bonsoir,

    Excusez moi j'ai pas bien compris ce que cela veut dire, c'est quoi le principe, et quels sont les possibilités

    Je l'ai testé, et je comprends pas d'où vient l'OS où on fait le test ?
    voir tous les messages déjà postés...

    http://www.developpez.net/forums/d10...b/#post5993135
    http://www.developpez.net/forums/d10...b/#post5993195

  18. #38
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 891
    Par défaut Merveilleux
    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.

  19. #39
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 277
    Par défaut Mes respects :o)
    Bonjour,

    Oui belle performance, le suite logique de cette émulateur NES en javascript http://benfirshman.com/projects/jsnes/...

    Cordialement.

  20. #40
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par abriotde Voir le message
    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.
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Le noyau Linux débarque sur les navigateurs Web
    Par Idelways dans le forum Actualités
    Réponses: 0
    Dernier message: 18/05/2011, 12h51
  2. Questions sur les navigateurs web
    Par Eric_M dans le forum C#
    Réponses: 3
    Dernier message: 07/06/2010, 16h54
  3. Réponses: 14
    Dernier message: 20/08/2006, 00h00
  4. PNG sur les pages Web
    Par Crayon dans le forum Webdesign & Ergonomie
    Réponses: 4
    Dernier message: 28/07/2006, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo