Forum Linux.général renseignement sur le server X11

Posté par . Licence CC by-sa.
Tags : aucun
1
27
mai
2019

Bonjour à tous,

Voila j'aimerais comprendre un peu plus ce que fait le server X11.

Toutes applications qui souhaitent afficher quelque chose à l'écran doit passer par ce serveur? Il y a une API disponible en C ou C++ ou on connait le port d'écoute et le protocole pour communiquer avec le serveur et on envoie une socket TCP?

Meme si je n'ai pas de Bureau graphique, l'interpreteur bash utilise également le serveur X11 pour afficher les sorties des commandes ?

Je peux allumer n'importe quelle led de mon écran d'ordi si j'envoie une requette avec le serveur X11 ?

Merci d'avance pour vos éclaircissements

  • # Réponses

    Posté par (page perso) . Évalué à 3 (+2/-0). Dernière modification le 27/05/19 à 12:11.

    Je ne suis pas du tout un spécialiste, mais voici ma maigre contribution:

    Toutes applications qui souhaitent afficher quelque chose à l'écran doit passer par ce serveur?

    Oui et non. Si tu veux afficher quelque chose sur un bureau qui utilise X11, oui. Mais il y a aussi Wayland aujourd'hui, qui va remplacer tôt ou tard X11. Tu peux aussi passer par le framebuffer sans avoir de serveur graphique.

    Il y a une API disponible en C ou C++ ou on connait le port d'écoute et le protocole pour communiquer avec le serveur et on envoie une socket TCP?

    Généralement quand on veut faire un programme graphique on utilise une bibliothèque qui va gérer tout ça (GTK, Qt, TK…). Pour se passer de ces bibliothèques et dialoguer directement avec X, je ne saurais t'aiguiller.
    Le problème si tu codes quelque chose directement pour X11 est la portabilité: ce serveur est utilisé avec Linux, mais pas par Windows par exemple. Et il est sur le point d'être remplacé, donc ton application risque d'être compliquée à maintenir dans la durée. En utilisant une bibliothèque graphique qui est compatible avec plusieurs systèmes tu évites ça.

    Meme si je n'ai pas de Bureau graphique, l'interpreteur bash utilise également le serveur X11 pour afficher les sorties des commandes ?

    Non, c'est ton émulateur de terminal qui utilise X11, à travers sa bibliothèque graphique (GTK si tu utilises gnome-terminal). Si tu es dans un TTY il n'y a pas de serveur graphique. Mais il reste la possibilité d'utiliser le framebuffer pour afficher des éléments graphiques.

    Un LUG en Lorraine : https://enunclic-cappel.fr

  • # libX11 et LibXCB

    Posté par (page perso) . Évalué à 2 (+0/-0).

    Il y a une API disponible en C ou C++ ou on connait le port d'écoute et le protocole pour communiquer > avec le serveur et on envoie une socket TCP?

    Il en existe même deux:

  • # Du dessin

    Posté par . Évalué à 5 (+3/-0).

    Le serveur X11 reçoit des ordres de dessin depuis le réseau (historiquement) et les exécutent sur ton écran (plutôt ta carte graphique).

    X11 est tellement lié au réseau que les premières versions, tu ne pouvais pas avoir d’affichage sans carte réseau… ensuite, il y a eu l’interface loopback.

    L’avantage de se système c’est que peu importe où sont exécuté les applications, elles s’affichent sur ton écran.

    On peut même lancer une application sur un serveur A, le windows manager sur un serveur B et le Desktop manager sur un serveur C.

    Dans les problèmes classique de l’architecture : il y a eu des problèmes de sécurité qui n’avait pas été anticipé car a l’époque ce n’était pas encore courant ; il y a eu des problèmes de performance notamment avec l’arrivé de la 3D temps réel. Dans les problèmes de performances, je me souviens qu’en jouant avec la molette pour faire défiler un pdf dans acrobat reader (distant), acrobat envoyait les ordres de dessin comme des listes de lignes. Mais des lettres courbes, ça fait beaucoup de lignes, et on arrivait à 200/300Mbit/s de débit. Aujourd’hui, avec les CPU qui arrivent à faire de la compression LZW rapide, il est plus efficace de transférer des bitmap plutôt que des lignes…

    Pour afficher, il faut utiliser la libX11 ou équivalente, mais comme dit précédemment, il vaut mieux passer par des bibliothèques plus moderne comme Qt.

    Espérant avoir répondu au moins partiellement à tes interrogations.

Envoyer un commentaire

Suivre le flux des commentaires

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