Journal La transparence réseau arrive dans Wayland

Posté par (page perso) . Licence CC by-sa
Tags :
42
24
sept.
2012

Cher journal,

Je sais que tu ne dors plus depuis qu'on a annoncé que Wayland était un successeur probable à Xorg et qu'il ne proposait pas de transparence réseau. Rassure-toi, je viens de lire sur The H online que, lors de la récente conférence du serveur X, Kristian Høgsberg (pratique le copier-coller) a présenté les débuts de la transparence réseau avec le compositeur de référence de Wayland, Weston.

Et pour ceux qui font en tty et qui ne sont donc pas intéressés par toutes ces actualités à propos fenêtres dans tous les sens, une petite nvidéo pour passer le temps.

  • # C'est quoi?

    Posté par (page perso) . Évalué à  10 .

    Bonjour.
    Je vais surement passer pour un noob, mais tant pis. Elle consiste en quoi la "transparence réseau" et quelles sont ses applications?
    Merci d'avance pour les réponses.

    • [^] # Re: C'est quoi?

      Posté par (page perso) . Évalué à  10 .

      Elle consiste à lancer une application graphique sur un serveur et y accéder depuis un client. Les applications sont assez variées, par exemple, ça permet de piloter une application graphique car elle doit tourner sur un serveur distant (lourde en calcul par exemple, ou un outil d'administration d'un serveur) sans que rien ne soit développé pour la piloter à distance. En fait, c'est la même chose que SSH mais pour les applications graphique, d'ailleurs tu peux lancer une application graphique avec ssh en utilisant cette transparence de X si tu as passé l'option -X lorsque tu as lancé ssh.

      « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

      • [^] # Re: C'est quoi?

        Posté par (page perso) . Évalué à  2 .

        Elle consiste à lancer une application graphique sur un serveur et y accéder depuis un client. Les applications sont assez variées, par exemple, ça permet de piloter une application graphique car elle doit tourner sur un serveur distant (lourde en calcul par exemple, ou un outil d'administration d'un serveur) sans que rien ne soit développé pour la piloter à distance. En fait, c'est la même chose que SSH mais pour les applications graphique, d'ailleurs tu peux lancer une application graphique avec ssh en utilisant cette transparence de X si tu as passé l'option -X lorsque tu as lancé ssh.

        Ok dac, je m'en doutais un peu, mais je ne savais pas que ça portait ce nom. Sympa pour l'option -X, je vais la tester sur mon raspberry pi.
        Merci encore de la réponse.

        • [^] # Re: C'est quoi?

          Posté par . Évalué à  5 .

          man ssh dit d'utiliser -Y et pas -X. Mais ca marche tout pareil

          • [^] # Re: C'est quoi?

            Posté par . Évalué à  1 .

            Si tu es le seul root des deux machines en jeu, alors -X et -Y c'est du pareil au même. Si tu n'es pas le seul root de la machine distante, alors utiliser -Y à la place de -X c'est prendre un risque de sécurité.

            En gros -Y est plus flexible, mais moi sûr.

            • [^] # -X est hostile

              Posté par . Évalué à  4 .

              D’un autre côté, -X désactive toutes les extensions… dont d’extension Xkb.
              Plus moyen d’avoir les caractères en AltGr !
              Il ne faut pas avoir des trucs trop compliqués à faire…
              Encore un truc fait par les américains pour les américains.

              Théorie du pot-au-feu : « Tout milieu où existe une notion de hauteur (notamment les milieux économique, politique, professionnels) se comporte comme un pot-au-feu : les mauvaises graisses remontent. »

      • [^] # Re: C'est quoi?

        Posté par (page perso) . Évalué à  7 .

        Avec Wayland, il faudra faire ssh -Wayland ?

        blog.rom1v.com

        • [^] # Re: C'est quoi?

          Posté par (page perso) . Évalué à  4 .

          Il faudra voir comment l'implémentation se passera en pratique, c'est loin d'être aussi avancé.

          « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

      • [^] # Re: C'est quoi?

        Posté par (page perso) . Évalué à  10 .

        Elle consiste à lancer une application graphique sur un serveur et y accéder depuis un client.

        Attention, pour X la notion de client et de serveur est inversée.

        • le client est l'application elle même (firefox, libreoffice … )
        • le serveur gère l'affichage (carte graphique / écran / clavier /sourie …)

        Donc dans ssh -X moi@plop firefox, le serveur X est local, le client X (firefox) est distant.

        • [^] # Re: C'est quoi?

          Posté par . Évalué à  2 .

          En fait, cette 'inversion' n'en est pas vraiment une si l'on considère les fonctions respectives de chacun:

          • Le serveur X11 est celui qui fournit les ressources (affichage, clavier, souris, …)
          • Le client X11 est celui qui initie la connection au serveur X11.
          • Un unique serveur X11 peut gérer plusieurs clients/connections simultanément

          L'analogie avec un serveur web et un browser/client web devient

          • Le server web est celui qui fournit les ressources (http, images, …)
          • Le browser web est celui qui initie la connection au serveur web.
          • Un unique serveur web peut gérer plusieurs clients/connections simultanément
      • [^] # Re: C'est quoi?

        Posté par (page perso) . Évalué à  4 .

        Elle consiste à lancer une application graphique sur un serveur et y accéder depuis un client

        En fait techniquement (pour X), c'est l'inverse. Lorsque tu lances une appli sur une machine distante et que l'affichage ce fait sur ton ordi alors:
        - C'est l'appli distante (sur un serveur ssh) qui est le client (X)
        - Le serveur X est sur ta machine locale et c'est l'appli qui se connecte dessus.

        Le serveur graphique à utiliser est donné dans la variable d'environnement DISPLAY:

        $ echo $DISPLAY
        :0.0
        
        

        Il est possible de spécifier un autre serveur X et de lancer un xterm local qui s'affiche une autre machine:

        $ export DISPLAY=<adresse.ip.machine.distante>:0.0
        $ xterm
        
        

        Il faut par contre que le serveur X distant soit configuré pour accepter les applis distantes.
        La solution la plus simple historique est de faire un "xhost + [ip acceptée]". (Par contre ça ouvre de grosses failles de sécu. À utiliser avec parcimonie)

        Le ssh -X ne fait que rendre tous ça transparent.

        Il est aussi possible de lancer d'autres serveurs X locaux "emboités" (? nested en anglais) (xnest, xserver-xephyr)

        Matthieu Gautier|irc:starmad

        • [^] # Re: C'est quoi?

          Posté par . Évalué à  4 .

          La solution la plus simple historique est de faire un "xhost + [ip acceptée]".

          Oui enfin depuis les années 2000, au moins on a xauth qui permet d'ajouter sans problème.
          sur la machine locale (je vais pas préciser client/serveur, les gens vont se perdre)

          $>xauth list 
          
          

          repérer la ligne correspondant a l'affichage actuel (triple clique dessus)
          sur la machine distante

          $>xauth add <clique mileu>
          $>export DISPLAY=<ip machine locale>:0
          $>emacs 
          
          

          Et puis dans le temps il n'y avait même pas besoin de faire le xhost +, les machine l'étaient par défaut. Et si elle ne l'étaient pas un chti $> rsh demeter 'export DISPLAY=:0; /usr/bin/xhost +' et le tour était joué ;)

          Ah les vieille DEC de l'iut

          Il ne faut pas décorner les boeufs avant d'avoir semé le vent

          • [^] # Re: C'est quoi?

            Posté par . Évalué à  2 .

            en même temps ce n'était pas très sécurisé non plus car tu pouvais prendre la main sur le serveur X du voisin … ça permettait de faire des choses rigolotes du style passage de l'écran d'une personne sur celui d'une autre avec un petit bonhomme qui poussait l'écran, de faire "fondre" l'écran, la neige ou encore l'affichage général de chose pas nécessairement politiquement correct sur tous les postes pendant une séance de TP … bref un peu de poilade :D

            • [^] # Re: C'est quoi?

              Posté par . Évalué à  4 .

              Oui maintenant c'est plus lissé, on peut plus se marrer…

              Ah les xeyes en plein écran les souries folles (accélération lente/rapide/normal) avec un changement de cadence toutes les N secondes…

              Ah c'était le bon temps ;)

              Et ceux qui n'avaient pas mis mesg n dans leur .bashrc… Que de bons souvenirs ;)

              Il ne faut pas décorner les boeufs avant d'avoir semé le vent

        • [^] # Re: C'est quoi?

          Posté par . Évalué à  3 .

          L'avantage d'utiliser ssh -X, c'est surtout pour éviter que tout le trafic X11 passe en clair sur le réseau.

          • [^] # Re: C'est quoi?

            Posté par . Évalué à  2 .

            Et ça traverse les BOX qui font du NAT. Même si plusieurs utilisateurs utilisant plusieurs PC locaux font des accès distants.

    • [^] # Re: C'est quoi?

      Posté par . Évalué à  9 .

      tu t'appelles Kevin, t'es pardonné…

    • [^] # Re: C'est quoi?

      Posté par . Évalué à  4 .

      on parle souvent de "remote display X" pour faire l'analogie avec ce qu'on connait d'un serveur X Window.

      • [^] # Re: C'est quoi?

        Posté par . Évalué à  4 .

        Ce terme est quand même plus clair que "transparence réseau", au début j'ai cru que c'était un truc marketing avec des jolies phrases qui ne veulent rien dire.

    • [^] # Re: C'est quoi?

      Posté par (page perso) . Évalué à  9 .

      Elle consiste en quoi la "transparence réseau"

      C'est le wifi

  • # 2 fils et...

    Posté par . Évalué à  10 .

    pas un qui aime les lego. Pfffff.

    J'attends un petit fils qui aimera ca.

    Merci pour la petite nvidéo.

    • [^] # Re: 2 fils et...

      Posté par (page perso) . Évalué à  2 .

      Si tu ranges pas ta chambre avant ce soir, tout passe à la poubelle et tu auras du pain sec et de l'eau au repas !

    • [^] # Re: 2 fils et...

      Posté par . Évalué à  5 .

      Les adultes regardent du porn, les enfants regardent ceci ! :-) Euh, en fait, les adultes regardent ça aussi ! (Il parlait de quoi, déjà, le journal, au fait ?)

    • [^] # Re: 2 fils et...

      Posté par (page perso) . Évalué à  3 . Dernière modification : le 24/09/12 à 19:55

      Dommage que le débit soit bridé, ça coupe un élan. Un "n'élan". Bref.

      Un n'élan coupé

      Love, bépo.

  • # Le truc interressant de ce journal

    Posté par . Évalué à  3 .

    une petite nvidéo pour passer le temps.

    On rajoute une ligne de 8 ballons de long sur un ballon de large et un appareil photo/webcam, et on doit avoir un générateur d'entropie d'une qualité démentielle pour un prix somme toute modeste.

    • [^] # Re: Le truc interressant de ce journal

      Posté par . Évalué à  6 .

      À la fin de la vidéo, il est indiqué que le bonhomme a mis 600 heures pour faire son montage, il y a donc un coût qui n'est pas négligeable.

      • [^] # Re: Le truc interressant de ce journal

        Posté par . Évalué à  3 .

        Je ne suis pas sur que tout le chemin soit nécessaire pour avoir une super entropie :)

        Mais cela serait marrant comme but de concours : un générateur de nombre aléatoire utilisant des boules noires et blanches devant une webcam. Le but est de créer le mélange des boules.

        "La liberté de tout dire n'a d'ennemis que ceux qui veulent se réserver le droit de tout faire". "La question n'est pas de savoir si vous avez quelque chose à cacher. La question est de savoir si c'est nous qui contrôlons le gouvernement ou l'inverse

        • [^] # Re: Le truc interressant de ce journal

          Posté par (page perso) . Évalué à  3 .

          Des boules noire et blanche devant une caméra, mmm…
          Ca existe déjà !

          Ca s'appelle Motus :o)

          • [^] # Re: Le truc interressant de ce journal

            Posté par . Évalué à  2 .

            C'est le nom du concours :)

            Le nombre aléatoire étant le hash sha1 de l'image généré ?

            "La liberté de tout dire n'a d'ennemis que ceux qui veulent se réserver le droit de tout faire". "La question n'est pas de savoir si vous avez quelque chose à cacher. La question est de savoir si c'est nous qui contrôlons le gouvernement ou l'inverse

    • [^] # Re: Le truc interressant de ce journal

      Posté par (page perso) . Évalué à  0 .

      Sauf que le nombre de balles et le ratio orange/blanc est fixé. Les tirages ne sont pas trop indépendants puisque obtenir BBBBBBBB réduirait les chances d'obtenir du blanc la prochaine fois. C'est pas encore suffisant pour de la cryptographie.

  • # Transparence dans Wayland

    Posté par . Évalué à  3 .

    Naïf, j'ai cru que nous était présenté un pays dont
    l'infrastructure repose sur des routes ouvertes sans péages,
    bordées de bâtiments et habitations aux murs de verre…
    … fumé,
    encourageant la neutralité dans son intranet.

    Snif.

  • # Et concrètement ?

    Posté par (page perso) . Évalué à  4 .

    J’avoue ne pas avoir eu le temps de regarder la vidéo sur le site en lien, mais j’y ai lu l’article.
    La seule information que j’ai trouvé dit que ce ne sont pas des instructions de dessin, mais des « pixels » qui seront transférés, mais il n’y a pas d’informations complémentaires sur le fonctionnement réel.

    • S’agit-il d’un nouveau protocole inventé pour l’occasion.
    • S’appuient-il sur quelque chose d’existant comme RFB ou SPICE (qui serait à mon avis une bonne idée).
    • Je suppose qu’ils résolvent les problèmes de X11 (résolus en partie par NX) :
      • trop d’opérations synchrones rendant l’utilisation pénible sur les réseaux à forte latence.
      • plus très adapté aux modes de compositing modernes.
      • performances plus que moyenne pour la vidéo et la 3D…
    • [^] # Re: Et concrètement ?

      Posté par . Évalué à  2 .

      En fait ce qui est présenté dans la vidéo est plus une démo de ce qui est faisable qu'une véritable transparence réseau.
      Kristian Høgsberg utilise un système qui leur permet d'enregistrer ce qui se passe pour une "fenêtre" (une surface gérée par Weston). C'était surtout utilisé pour le debug de Weston (ils peuvent ainsi enregistrer un éventuel problème d'affichage). Cette fonctionnalité n'enregistre que ce qui est nécessaire (les différences avec la précédente mise à jour de la surface).
      Il s'est semble-t-il servi de cet outil pour "forwarder" une surface sur un autre serveur Weston.
      La démo montre d'ailleurs qu'il est possible d’interagir sur la même surface à travers deux serveurs Weston différents.

      • [^] # Re: Et concrètement ?

        Posté par (page perso) . Évalué à  2 .

        L'intérêt de NX par rapport à VNC, c'est qu'il était beaucoup plus efficace : pas de glitches graphiques, très réactif.

        La transparence réseau de Wayland s'oriente-t-elle vers une qualité type VNC ou NX?

        • [^] # Re: Et concrètement ?

          Posté par . Évalué à  3 .

          Coté bande passante, ce sont des buffers entiers qui sont envoyé.
          Après il est envisageable de n'envoyer que le delta par rapport au buffer précédent.
          Donc coté utilisation de bande passante, Wayland natif ne sera pas très bon, mais le débit des connections augmentant régulièrement ce n'est pas sûr que ce soit un problème.

          La question principale est donc la latence, Kristian Høgsberg dit qu'il a essayé de minimiser le nombre de round trip, mais dit aussi qu'il n'a pas testé la transparence en simulant une latence élevée, dommage, j'espère qu'il le fera avant de figer Wayland(la version 1.0).

          Avec Weston qui fait gérer le bord des fenêtres par le client, déplacer une fenêtre nécessite un round trip, mais tous les serveurs Wayland n'utiliseront pas forcément la même conception que Weston n'est pas le seul serveur possible: les devs de KDE prévoient de mettre cette aspect là dans le serveur, ce qui est mieux en distant (mais peut avoir d'autre inconvénients).

          • [^] # Re: Et concrètement ?

            Posté par (page perso) . Évalué à  4 .

            Donc coté utilisation de bande passante, Wayland natif ne sera pas très bon, mais le débit des connections augmentant
            régulièrement ce n'est pas sûr que ce soit un problème.

            C'est faux, un ssh -CX est bien mieux qu'un ssh -X, idem NX est super bien…

            Malgré l'augmentation des débits, même en giga, sur grand écran, c'est pas toujours terrible X seul. Donc minimiser les débit, c'est IMPORTANT.

            En plus, c'est bon pour la planète… Chaque paquet a un coût carbone non nul, alors quitte à refaire les choses, autant les refaire MIEUX.

            Plus je vois le projet Wayland, plus j'entends qu'au final, ce ne sera pas mieux que X…

            • [^] # Re: Et concrètement ?

              Posté par . Évalué à  3 .

              C'est faux, un ssh -CX est bien mieux qu'un ssh -X, idem NX est super bien…

              NX ne fait pas que compresser les données, il minimise aussi le nombre de RTT donc tu ne peux pas dire que c'est uniquement une affaire de débit.

              Plus je vois le projet Wayland, plus j'entends qu'au final, ce ne sera pas mieux que X…

              Ce sera mieux pour les mainteneurs du code car ça fait beaucoup moins de chose donc ça devrait être plus facile à maintenir.
              Pour les utilisateurs, pas sûr en effet, il y a certains avantages mais il y a aussi des inconvénients.

              • [^] # Re: Et concrètement ?

                Posté par (page perso) . Évalué à  1 .

                Question d'un ignorant : Wayland n'aucune influence sur les performances (en bien ou en mal) par rapport à X?
                Ca ne facilite pas le développement de drivers?

                • [^] # Re: Et concrètement ?

                  Posté par (page perso) . Évalué à  3 .

                  Wayland n'aucune influence sur les performances (en bien ou en mal) par rapport à X?

                  Non, aucune.

                  Ca ne facilite pas le développement de drivers?

                  Non ce sont les même pilotes (pour les libres). Wayland est en fait une simplification de l'architecture de X pour l'adapter à ce qui se fait aujourd'hui. X n'est plus utilisé comme il l'était à ses débuts et ça introduit des complications d'architecture inutiles.

                  « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

                  • [^] # Re: Et concrètement ?

                    Posté par . Évalué à  2 .

                    Wayland n'aucune influence sur les performances (en bien ou en mal) par rapport à X?

                    Non, aucune.

                    Je ne dirais pas "aucune", Wayland en lui-même c'est l'équivalent de DRI2 d'un serveur X donc pas d'impact.

                    Mais Wayland avec Weston intégre une partie de la gestion des fenetres dans les clients (les devs KDE ont prévu un choix différent) ce qui a des conséquences sur la performance vue par le client, en bien ET en mal d'ailleurs.

                    • [^] # Re: Et concrètement ?

                      Posté par (page perso) . Évalué à  3 .

                      (les devs KDE ont prévu un choix différent)

                      Il y a d'autres différences que la décoration de fenêtre ?

                      « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

                      • [^] # Re: Et concrètement ?

                        Posté par . Évalué à  3 .

                        Pas que je sache, maintenant ça a quand même des impacts assez intéressant: avec KWin déplacer une fenetre pourra se faire uniquement dans le serveur d'affichage(car il incluera le gestionnaire de fenetre), avec Weston il y a des communications avec le programme (qui envoit les ordres de déplacement)..

                        • [^] # Re: Et concrètement ?

                          Posté par . Évalué à  2 .

                          Oups, j'ai l'impression que j'ai mal compris le protocole pour ce qui est de déplacer une fenetre: apparemment c'est fait dans le serveur d'affichage pas dans le client, le client dits juste 'maintenant déplace la fenetre' et le serveur déplace la fenetre jusqu'à ce que le pointeur soit relaché!

                          Très sympa pour la transparence réseau en fait.

                          Bon le redimensionnement là je ne suis pas sûr.. Ca manque de documentation je trouve..

  • # La fameuse démo

    Posté par (page perso) . Évalué à  9 .

    Voilà la fameuse démonstration. Tout y est bien expliqué!

    Je vous conseille de regarder la vidéo en entier! C'était une des meilleures conférences de l'XDC.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.