Las respuestas existentes no abordan la imagen más amplia.
Si no está utilizando un entorno gráfico (es decir, está iniciando sesión en la consola del sistema sin ventanas, etc.) o si está iniciando sesión de forma remota desde un terminal de solo texto a través de SSH o similar, como desde una computadora con Windows que ejecuta PuTTY) no hay interfaz gráfica de usuario involucrada y, por DISPLAY
lo general, no se configurará. Su único medio de comunicarse con la computadora es la línea de comando (aunque puede haber formas de pasar a una sesión de GUI si sabe cómo hacerlo).
Si está iniciando sesión en la consola con una interfaz gráfica (en Ubuntu, generalmente se usa el GDM greeter) o utilizando un terminal gráfico (como desde una computadora con Windows que ejecuta eXceed o mobaX, o software de escritorio remoto como un cliente VNC) DISPLAY
El programa configura la variable que administra su sesión gráfica para indicar a los clientes gráficos a qué dispositivos de E / S conectarse.
Tradicionalmente, la GUI en una computadora Ubuntu ejecutaba X.org, una implementación X11, aunque más recientemente, Canonical introdujo un reemplazo modernizado llamado Mir; e incluso más recientemente, creo que Mir será abandonada en favor de otro proyecto con objetivos ampliamente similares llamados Wayland . Estos reemplazos están destinados a reducir la complejidad de una pila X11 completa, a la que no vamos a entrar aquí; se adhieren a la misma DISPLAY
convención, que es, después de todo, lo que estamos discutiendo aquí.
En X11, la parte del host DISPLAY
podría ser un servidor remoto, y usaría su computadora Ubuntu como una "terminal gráfica" para acceder a archivos y programas en ese servidor remoto (en cuyo caso su computadora es el "servidor" que sirve un teclado , un mouse y uno o más dispositivos de visualización para programas "cliente" que se ejecutan en el servidor remoto ...). Más comúnmente, el servidor X11 (o Mir, o Wayland) y los programas cliente (un administrador de escritorio y varios clientes gráficos como un navegador web, un cliente de correo electrónico, un programa de calendario, etc.) se ejecutan en su computadora. Esto se indica mediante la parte del "servidor" del DISPLAY
valor, que en este último caso suele estar vacío (lo que implica el valor predeterminado localhost
).
Un servidor X11 puede ejecutar una o más sesiones gráficas; por ejemplo, el inicio de sesión de su consola y una sesión remota de VNC podrían ejecutarse al mismo tiempo. En este caso (si son administrados por la misma instancia del servidor X11), tiene más de una "pantalla" en términos X11. En la práctica, una sesión (un evento de inicio de sesión y la instancia de escritorio generada a partir de esto) es una pantalla en X11.
Una de esas pantallas puede tener una o más pantallas. Tradicionalmente, esto significaba un monitor, aunque la arquitectura original tenía algunos rasgos desafortunados, como la incapacidad de mover una ventana de una pantalla a otra. Complementos como Xinerama y Xrandr enturbiaron aún más la situación hasta el punto en que una pantalla a menudo conecta múltiples monitores de varias maneras.
Si ha jugado con sistemas de múltiples monitores, probablemente haya descubierto que puede organizar los monitores de varias maneras y terminar con un área rectangular donde sus monitores muestran algunas partes y otras partes no están asignadas a ningún monitor. Esta es la "pantalla" que crea X11, y si tiene más de una tarjeta de visualización, puede tener varias de estas pantallas, cada una asignada a uno o más monitores (o en teoría, ejecutándose sin un monitor; Xvfb explota esto para permitir ejecutar X11 sin ningún monitor, simplemente mapeando la GUI a una región de memoria para cualquier propósito).
echo $DISPLAY
está imprimiendo:0
NO:0.0