Les réponses existantes ne permettent pas d’aborder la situation dans son ensemble.
Si vous n’utilisez pas d’environnement graphique (c.-à-d. que vous vous connectez à la console système sans Windows, etc. ou que vous vous connectez à distance à partir d’un terminal texte sur SSH ou similaire, par exemple à partir PuTTY) alors aucune interface graphique n'est impliquée, et DISPLAY
sera généralement non défini. Votre seul moyen de communiquer avec l'ordinateur est la ligne de commande (bien qu'il puisse y avoir des façons de passer à une session GUI si vous savez comment).
Si vous vous connectez sur la console avec une interface graphique (sur Ubuntu, généralement l’appareil GDM est utilisé) ou un terminal graphique (par exemple, un ordinateur Windows exécutant eXceed ou mobaX, ou un logiciel de bureau distant comme un VNC) client) la variable DISPLAY
est configurée par le programme qui gère votre session graphique pour indiquer aux clients graphiques les périphériques d'E / S auxquels se connecter.
Traditionnellement, l’interface graphique d’un ordinateur Ubuntu exécutait X.org, une implémentation X11, mais plus récemment, Canonical a introduit un remplacement modernisé appelé Mir; et encore plus récemment, je crois que Mir sera abandonné dans en faveur d'un autre projet avec des objectifs largement similaires, appelé Wayland . Ces remplacements visent à réduire la complexité d'une pile X11 complète, ce que nous n'entrerons pas ici - ils respectent la même convention DISPLAY
, ce dont nous discutons après tout.
Sur X11, la partie hôte de DISPLAY
pourrait être un serveur distant et vous utiliseriez votre ordinateur Ubuntu comme un "terminal graphique" pour accéder aux fichiers et aux programmes sur ce serveur distant (auquel cas votre ordinateur est le " serveur "qui sert un clavier, une souris et un ou plusieurs périphériques d’affichage aux programmes" clients "exécutés sur le serveur distant. Plus communément, le serveur X11 (ou Mir ou Wayland) et les programmes clients (un gestionnaire de bureau et divers clients graphiques tels qu'un navigateur Web, un client de messagerie, un programme de calendrier, etc.) fonctionnent tous sur votre ordinateur. Cela est indiqué par la partie "serveur" de la valeur DISPLAY
, qui dans ce dernier cas est généralement vide (ce qui implique la valeur par défaut, localhost
).
Un serveur X11 peut exécuter une ou plusieurs sessions graphiques - par exemple, votre connexion à la console et une session VNC distante peuvent être exécutées en même temps. Dans ce cas (si elles sont gérées par la même instance de serveur X11), vous avez plusieurs "affichages" en termes X11. En pratique, une session (un événement de connexion et l'instance de bureau issue de cette session) est un affichage dans X11.
Un tel affichage peut avoir un ou plusieurs écrans. Traditionnellement, cela signifiait un seul moniteur, même si l’architecture originale avait des traits malheureux tels que l’impossibilité de déplacer une fenêtre d’un écran à un autre. Des add-ons comme Xinerama et Xrandr ont encore compliqué la situation au point où un écran connecte souvent plusieurs moniteurs de différentes manières.
Si vous avez joué avec des systèmes à plusieurs moniteurs, vous avez probablement découvert que vous pouvez organiser les moniteurs de différentes manières et obtenir une zone rectangulaire où vos moniteurs affichent certaines parties et d'autres ne sont affectés à aucun moniteur. Ceci est "l'écran" que X11 crée, et si vous avez plus d'une carte d'affichage, vous pouvez avoir plusieurs de ces écrans, chacun assigné à un ou plusieurs moniteurs (ou en théorie, fonctionnant sans moniteur; Xvfb l'exploite pour permettre vous devez exécuter X11 sans aucun moniteur, en mappant simplement l'interface graphique à une région de mémoire pour n'importe quel but).