GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que l'API GUI native de Linux ?

Sous Linux, l'interface utilisateur graphique ne fait pas partie du système d'exploitation. L'interface utilisateur graphique que l'on trouve sur la plupart des ordinateurs de bureau Linux est fournie par un logiciel appelé le système X Window, qui définit une manière indépendante de l'appareil de gérer les écrans, les claviers et les dispositifs de pointage.

X Window définit un protocole réseau pour la communication, et tout programme qui sait "parler" ce protocole peut l'utiliser. Il existe une bibliothèque C appelée Xlib qui facilite l'utilisation de ce protocole, donc Xlib est en quelque sorte la API d'interface graphique native. Xlib n'est pas le seul moyen d'accéder à un serveur X Window; il y a aussi XCB.

Les bibliothèques de boîtes à outils telles que GTK + (utilisée par GNOME) et Qt (utilisée par KDE), construites au-dessus de Xlib, sont utilisées car elles sont plus faciles à programmer. Par exemple, ils vous donnent une apparence cohérente entre les applications, facilitent l'utilisation du glisser-déposer, fournissent des composants standard pour un environnement de bureau moderne, etc.

La façon dont X dessine sur l'écran en interne dépend de l'implémentation. X.org a une partie indépendante de l'appareil et une partie dépendante de l'appareil. Le premier gère les ressources de l'écran telles que Windows, tandis que le second communique avec le pilote de la carte graphique, généralement un module du noyau. La communication peut se produire via un accès direct à la mémoire ou via des appels système au noyau. Le pilote traduit les commandes sous une forme compréhensible par le matériel de la carte.

À partir de 2013, un nouveau système de fenêtres appelé Wayland commence à devenir utilisable, et de nombreuses distributions ont déclaré qu'elles y migreraient à un moment donné, bien qu'il n'y ait toujours pas de calendrier clair. Ce système est basé sur l'API OpenGL/ES, ce qui signifie qu'à l'avenir OpenGL sera "l'API GUI native" de Linux. Des travaux sont en cours pour porter GTK + et QT sur Wayland, de sorte que les applications et les systèmes de bureau populaires actuels nécessitent des modifications minimes. Les applications qui ne peuvent pas être portées seront prises en charge via un serveur X11, tout comme OS X prend en charge les applications X11 via Xquartz. Le port GTK+ devrait être terminé d'ici un an, tandis que Qt 5 dispose déjà d'une prise en charge complète de Wayland.

Pour compliquer encore les choses, Ubuntu a annoncé qu'ils développaient un nouveau système appelé Mir en raison de problèmes qu'ils perçoivent avec Wayland. Ce système de fenêtres est également basé sur l'API OpenGL/ES.


Linux est un noyau, pas un système d'exploitation complet. Il existe différents systèmes de fenêtrage et interfaces graphiques qui s'exécutent sur Linux pour fournir un fenêtrage. X11 est généralement le système de fenêtrage utilisé par les distributions Linux.


Wayland mérite également d'être mentionné car il est principalement qualifié de "futur X11 killer".

Notez également qu'Android et certains autres systèmes d'exploitation mobiles n'incluent pas X11 bien qu'ils aient un noyau Linux, donc en ce sens X11 n'est pas natif de tous les systèmes Linux.

Être multiplateforme n'a rien à voir avec être natif. Cocoa a également été porté sur d'autres plates-formes via GNUStep, mais il est toujours natif d'OS X / macOS.


Linux
  1. Qu'est-ce que Linux ? Un guide pour les utilisateurs non techniques

  2. Qu'est-ce que POSIX ? Pourquoi est-ce important pour les utilisateurs Linux/UNIX ?

  3. Quel est le niveau d'exécution actuel du système Linux ?

  4. Appels système dans Windows et API native ?

  5. Quel serait l'équivalent de l'API Win32 sous Linux ?

5 choses à faire lorsque l'interface graphique de votre système Linux se fige

Linux - Que voulons-nous dire exactement lorsque nous disons que nous utilisons Linux ?

Qu'est-ce que le système de fichiers Linux ? Guide facile

Qu'est-ce que les appels système Linux et les fonctions de bibliothèque ?

Installation de Tomcat 7 sur un système Linux avec Native Library

Comment apprendre les composants internes du système Linux